[Python-Dev] Re: [Python-checkins] python/dist/src/Lib/test test_signal.py,1.9,1.10

Michael Hudson mwh@python.net
30 May 2002 17:05:04 +0100

Guido van Rossum <guido@python.org> writes:

> > Well, I'm not mixing threads and signals, really.  I've now learnt
> > that when a signal is directed at a process on BSD it is delivered to
> > "a" signal from the set of signals that hasn't blocked it.
>       ^^^^^^                 ^^^^^^^
> You mean theads, right?

thReads, yes :)

> > What I need to know, and can't quite work out, is how many threads are
> > present when you just execute 
> > 
> > $ ./python
> > 
> > and are sitting at the interpreter prompt?  Is it just the one (the
> > main thread)?  That's what I thought, but I'm unable to explain the
> > behaviour I'm seeing if that is indeed the case.
> Python doesn't create any threads.  On Linux, I know that when you
> start your first thread, the thread library creates an extra thread
> for some internal reasons.  Who knows what BSD does though.

I'm not sure either, but I have convinced myself that signal mask
handling is just buggered on BSD when the program is compiled in a
multi-threaded style (as, in simple C programs don't do what you
(well, I) would expect).  Note this isn't about actually using threads
-- just using "cc -pthreads".

Now what do I do?  Back my patch out?  Not expose the functions on
BSD?  It works on Linux...


  ARTHUR:  Why should he want to know where his towel is?
    FORD:  Everybody should know where his towel is.
  ARTHUR:  I think your head's come undone.
                    -- The Hitch-Hikers Guide to the Galaxy, Episode 7