You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The class client_impl creates a secondary thread called m_network_thread which runs run_loop().
From run_loop(), the callbacks such as on_close() are being called. on_close() has code such as m_con_state = con_closed;
which is a data race with all the accesses to m_con_state from the main thread, such as if(m_con_state == con_closing||m_con_state == con_closed) in client_impl::connect.
This needs mutex protection, or usage of an atomic.
This makes me wonder how many other member variables are victims of data races in this class....
The text was updated successfully, but these errors were encountered:
dfaure-kdab
changed the title
Many data races in sio_client_impl.cpp
Data race in sio_client_impl.cpp
Apr 5, 2023
The class
client_impl
creates a secondary thread calledm_network_thread
which runsrun_loop()
.From
run_loop()
, the callbacks such ason_close()
are being called.on_close()
has code such asm_con_state = con_closed;
which is a data race with all the accesses to
m_con_state
from the main thread, such asif(m_con_state == con_closing||m_con_state == con_closed)
inclient_impl::connect
.This needs mutex protection, or usage of an atomic.
This makes me wonder how many other member variables are victims of data races in this class....
The text was updated successfully, but these errors were encountered: