ecorm/cppwamp

Thread-safe Session

ecorm opened this issue · 2 comments

ecorm commented

Consider making Session objects more thread safe. This might entail that internal::WampMessage objects can no longer be reused in internal::Client, but must be constructed every time a message needs to be sent.

ecorm commented

Now that serializer/deserializer instances are reused within the same Session, making its existing operations reentrant is impossible without posting everything to Session's strand.

A set thread-safe methods (or overloads) will be added to Session which post everything to Session's strand. That way, single-threaded apps can continue using the existing API without the post penalty.

ecorm commented

Completed in 29153f6

Session now has overloads taking the ThreadSafe tag which will perform the operation in a thread-safe manner when invoked from concurrent threads,