Flags break_, is_sending, is_receiving, is_pause are accessed from both the send thread (send_process) and the read thread (received) without synchronization. Plain bool reads/writes from multiple threads is undefined behavior per C++ standard. Convert to std::atomic<bool> with proper initializers.