A possible bug in python threading/time module?

vm_usenet vm_usenet at yahoo.com
Wed Jul 2 04:39:40 EDT 2003


Hi everyone,

I've been running this segment of code (slightly simplified to
emphasize the main part):

----START of Script----

import time
import threading

sem = threading.Semaphore(2048)

class MyThread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        sem.acquire()
    
    def run(self):
        j = 0
        for i in range(1000):
            j = j+1
        time.sleep(60)
        sem.release()

#main
for i in range(4096):
    MyThread().start()

----END of Script----

I ran it on python 2.2.2 and python 2.3b1, and on both all of the
threads started successfully, acquiring the semaphore until 0
resources were left.
However, about 10-20 threads remain active after a while (and the
semaphore is lacking resources, respectively). I waited for about two
hours, and nothing changed - it appears to be hanging. Did anyone
encounter this behaviour before?
Am I the only one who ran into this situation? Is this a bug?

Thanx in advance

vm




More information about the Python-list mailing list