Message132904
| Author |
vstinner |
| Recipients |
neologix, vstinner |
| Date |
2011年04月03日.23:21:59 |
| SpamBayes Score |
9.1013235e-06 |
| Marked as misclassified |
No |
| Message-id |
<1301872919.9.0.645478347687.issue11753@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
The problem is that faulthandler's thread (faulthandler_thread) receives the SIGALRM signal: the signal interrupts sem_timedwait() which returns EINTR. PyThread_acquire_lock_timed() retries sem_timedwait() and so the other thread executing sendall() is not interrupted.
The solution is to configure which signals are handled by faulthandler_thread() using pthread_sigmask():
http://hg.python.org/sandbox/haypo/rev/4257fdfa5661
I forced a build on x86 FreeBSD (custom) buildbot:
http://www.python.org/dev/buildbot/all/builders/x86%20FreeBSD%20custom
I already tested sigprocmask() on FreeBSD (in my VM) and it works as expected: test_socket doesn't block anymore. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2011年04月03日 23:21:59 | vstinner | set | recipients:
+ vstinner, neologix |
| 2011年04月03日 23:21:59 | vstinner | set | messageid: <1301872919.9.0.645478347687.issue11753@psf.upfronthosting.co.za> |
| 2011年04月03日 23:21:59 | vstinner | link | issue11753 messages |
| 2011年04月03日 23:21:59 | vstinner | create |
|