not best way to await for data
it's better to use thread safe queue with wait possibility (for example: https://github.com/sidorovis/system_utilities/blob/master/sources/ts_queue/ts_queue.h )