fix for issue #684 - event data corruption
This is an MR fixing #684 (closed) based on a previously existing MR: !898 (closed).
Due a race condition (perfectly explained in !898 (closed)), the data attached to a Tango event could be corrupted.
The proposed fix is based on a std::promise (and its associated std::future).
This MR also cleans-up the way the push_event
mutex is locked and release (using RAII).
Edited by Nicolas Leclercq