GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • [ date ]
  • [ thread ]
  • [ subject ]
  • [ author ]

This view

  • Original page
  • New address

GeezerVison is showing mail.python.org — [Python-Dev] Python threads end up blocking signals in subprocesses

[Python-Dev] Python threads end up blocking signals in subprocesses

Jeff Epler jepler at unpythonic.net
Thu Dec 18 20:23:55 EST 2003

  • Previous message: [Python-Dev] Python threads end up blocking signals in subprocesses
  • Next message: [Python-Dev] Python threads end up blocking signals in subprocesses
  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

On Thu, Dec 18, 2003 at 10:22:34PM +0100, Martin v. Löwis wrote:
> Can you find out what $$ is, and what the PIDs and thread IDs of all
> participating threads are?

I'm not sure what all information I should try to gather for you.  Let me
know if you think this is enough to file a bug report with...  I changed
the example to make it clearer that it's the subprocess ignoring the
signal that is the problem, not anything in Python that is taking time
to notice the death of a child process.

Typical output (of course, pids and ppids change from run to run.  I
didn't find gettid(), I think thread.get_ident() is not what you were
asking for):
	not threaded
	os.getpid() -> 6444
	os.getppid() -> 6332
	thread.get_ident() -> 1074152064
	shell process 6445
	thread ppid 6444
	Elapsed time 0.00640296936035

	subthread
	os.getpid() -> 6444
	os.getppid() -> 6332
	thread.get_ident() -> 1082547504
	shell process 6447
	thread ppid 6444
	kill failed
	Elapsed time 1.01621508598

	main thread
	os.getpid() -> 6444
	os.getppid() -> 6332
	thread.get_ident() -> 1074152064
	shell process 6449
	thread ppid 6444
	Elapsed time 0.00641894340515


:r threadbug.py
import thread, time, os

def doit():
	print "os.getpid() ->", os.getpid()
	print "os.getppid() ->", os.getppid()
	print "thread.get_ident() ->", thread.get_ident()
        t = time.time()
        os.system("echo shell process $$; echo thread ppid $PPID; kill $$; echo kill failed; sleep 1")
        t1 = time.time()
        print "Elapsed time", t1-t
	print

print
print "not threaded"
doit()
print "subthread"
thread.start_new(doit, ())
time.sleep(2)
print "main thread"
doit()





  • Previous message: [Python-Dev] Python threads end up blocking signals in subprocesses
  • Next message: [Python-Dev] Python threads end up blocking signals in subprocesses
  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

More information about the Python-Dev mailing list
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.