diff options
author | Anthony Towns <aj@erisian.com.au> | 2022-03-05 04:09:35 +1000 |
---|---|---|
committer | Anthony Towns <aj@erisian.com.au> | 2022-08-29 22:50:54 +1000 |
commit | bbec32c9ad2fe213314db9d39aa1eacff2e0bc23 (patch) | |
tree | 82087c39607c65f52f06b53546e9ec033766c9e0 /src/net.h | |
parent | 06ebdc886fcb4ca22f695bafe0956cff6d70a250 (diff) |
net: mark TransportSerializer/m_serializer as const
The (V1)TransportSerializer instance CNode::m_serializer is used from
multiple threads via PushMessage without protection by a mutex. This
is only thread safe because the class does not have any mutable state,
so document that by marking the methods and the object as "const".
Diffstat (limited to 'src/net.h')
-rw-r--r-- | src/net.h | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -325,13 +325,13 @@ public: class TransportSerializer { public: // prepare message for transport (header construction, error-correction computation, payload encryption, etc.) - virtual void prepareForTransport(CSerializedNetMsg& msg, std::vector<unsigned char>& header) = 0; + virtual void prepareForTransport(CSerializedNetMsg& msg, std::vector<unsigned char>& header) const = 0; virtual ~TransportSerializer() {} }; -class V1TransportSerializer : public TransportSerializer { +class V1TransportSerializer : public TransportSerializer { public: - void prepareForTransport(CSerializedNetMsg& msg, std::vector<unsigned char>& header) override; + void prepareForTransport(CSerializedNetMsg& msg, std::vector<unsigned char>& header) const override; }; /** Information about a peer */ @@ -342,7 +342,7 @@ class CNode public: std::unique_ptr<TransportDeserializer> m_deserializer; - std::unique_ptr<TransportSerializer> m_serializer; + std::unique_ptr<const TransportSerializer> m_serializer; NetPermissionFlags m_permissionFlags{NetPermissionFlags::None}; |