[Python-Dev] cygwin errors

Tim Peters tim.one@comcast.net
Mon, 21 Jul 2003 15:55:31 -0400


[Jason Tishler]
> Ding, ding, ding!  We have a winner:

Congratulations!

> http://sf.net/tracker/?group_id=5470&atid=305470&func=detail&aid=742741
>
> The above patch enables HAVE_PTHREAD_SIGMASK under Cygwin which was
> not enabled before.
>
> ...
>
> Scanning the Cygwin code, I found the following:
>
>     extern "C" int
>     pthread_sigmask (int operation, const sigset_t *set, sigset_t
> *old_set)
>     {
>       pthread *thread = pthread::self ();
>
>       // lock this myself, for the use of thread2signal
> ***>  // two differt kills might clash: FIXME
>       [snip]
>     }
>
> Hence, it seems that my hypothesis that a Python change was tickling a
> Cygwin bug (i.e., the above FIXME or another issue) is correct.
>
> So, the question is how should we deal with this issue?
>
>     1. Leave the Python code base alone and assume that Cygwin's
>        pthread_sigmask() will get fixed.  Additionally, assume I will
>        patch around this problem until that happens.
>     2. Patch the Python code base so that HAVE_PTHREAD_SIGMASK is
>        undefined under Cygwin.
>
> I recommend option #1.  Do others agree?

I don't know.  It seems the only effect of HAVE_PTHREAD_SIGMASK is to decide
whether Python uses pthread_sigmask() or sigprocmask().  If the latter works
but the former doesn't, I would have guessed you'd like to use  the latter
<wink>.

> Did I miss any other options?
>
> BTW, does anyone know if Python is triggering the FIXME in Cygwin's
> pthread_sigmask()?

Sorry, no idea.

> Or, should I look elsewhere?

Ditto.