This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author neologix
Recipients neologix, rpointel, vstinner
Date 2011-09-06.21:19:36
SpamBayes Score 1.55083e-07
Marked as misclassified No
Message-id <1315343977.22.0.80755603816.issue12905@psf.upfronthosting.co.za>
In-reply-to
Content
> The C signal handler is called, but the system call (read in this case)
> is not interrupted.

That's what I thought...

> Bad news: the script doesn't hang if Python is build without threads.

Makes sense. When linked with pthread, all I/O syscalls are actually non-blocking.

> read() is interrupted after 1 second, it works.

Hmmm...
Does it still work if you don't a create thread beforehand?

Also, one difference is that Python uses sigaction to setup the signal handler. There might be subtle semantics change/bugs between signal/sigaction.

> Oh, siginterrupt(SIGALRM, 0) doesn't work in a program linked to
> pthread.

You could try with sigaction/SA_RESTART.

But OpenBSD's pthread implementation has severe limitations/bugs.
History
Date User Action Args
2011-09-06 21:19:37neologixsetrecipients: + neologix, vstinner, rpointel
2011-09-06 21:19:37neologixsetmessageid: <1315343977.22.0.80755603816.issue12905@psf.upfronthosting.co.za>
2011-09-06 21:19:36neologixlinkissue12905 messages
2011-09-06 21:19:36neologixcreate