ev_async race condition??
Jose Madrigal
mac.yosef at gmail.com
Fri May 20 21:01:00 CEST 2016
Hi!! I'm using libev in a multithreading project and I'm debugging with
ThreadSanitizer from clang. The ThreadSanitizer says there is a data race
in libev, but i'm not sure if it is a false positive.
I'm wake up a event loop using ev_async because belongs to another thread.
This is not supposed cause races.
This is the traceback that ThreadSanitizer throw:
thread 1 (perform a Write)
#0 evpipe_write - ev.c:2443
#1 ev_async_send - ev.c:4912
#2 ev::async::send() - ev++.h:801
thread 2 (perform a Read)
#0 ev_run - ev.c:3613
And then when I take a look on those files the variable that apparently
races is "pipe_write_skipped" but in the code looks like is a
"sig_atomic_t" type that should not be causing races.
Is there any chances that this race condition is real or is just a false
positive??
Sorry if I was not clear enough or I misspoke, english is not my strong
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.schmorp.de/pipermail/libev/attachments/20160520/51c37153/attachment.html>
More information about the libev
mailing list