GCD has APIs for event sources, we need some more release-acquire pairs to avoid false positives in TSan.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
LGTM with a nit
| lib/tsan/rtl/tsan_libdispatch_mac.cc | ||
|---|---|---|
| 286 | In the xpc-change you scoped handler outside of SCOPED_INTERCEPTOR scope as: {
SCOPED_INTERCEPTOR_RAW(dispatch_source_set_event_handler_callback);
Acquire(thr, pc, (uptr)source);
}
handler();Don't we need to do the same here? | |
| 307 | same here | |
| 330 | same here | |
In the xpc-change you scoped handler outside of SCOPED_INTERCEPTOR scope as:
{ SCOPED_INTERCEPTOR_RAW(dispatch_source_set_event_handler_callback); Acquire(thr, pc, (uptr)source); } handler();Don't we need to do the same here?
We generally don't run user callbacks inside of interceptor scope.