tsan: more careful handling of signals
On some tests we see that signals are not delivered when a thread is blocked in epoll_wait. The hypothesis is that the signal is delivered right before epoll_wait call. The signal is queued as in_blocking_func is not set yet, and then the thread just blocks in epoll_wait forever. So double check pending signals *after* setting in_blocking_func. This way we either queue a signal and handle it in the beginning of a blocking func, or process the signal synchronously if it's delivered when in_blocking_func is set. llvm-svn: 218070
Loading
Please sign in to comment