poco
poco copied to clipboard
Event reset does not work on linux
#include <unistd.h>
#include "Event.h"
Event e;
int main()
{
std::thread t([]() {sleep(4); e.set(); }); t.detach();
if (e.tryWait(2000))
printf("ok\n");
else {
e.reset();
printf("fail\n");
}
if (e.tryWait(3000))
printf("ok\n");
else
printf("fail\n");
//expect output : fail fail
//actural output : fail ok
return 0;
}
This issue is stale because it has been open for 365 days with no activity.
I don't understand your expectation:
- wait for 2 seconds, event is not set (it is reset automatically by default, so your explicit reset is unnecessary)
- while waiting for 3 seconds, 4 second sleep in the thread expires and the event is set
fail ok is the expected outcome
This issue is stale because it has been open for 365 days with no activity.
This issue was closed because it has been inactive for 60 days since being marked as stale.