A possible bug in python threading/time module?

vm_usenet vm_usenet at yahoo.com
Thu Jul 3 23:41:26 CEST 2003


> If you run "enough" threads, chances are high you'll eventually run into a
> platform thread bug on any platform -- but into different platform bugs on
> different platforms.  You didn't say which OS or platform thread library you
> were using, and those are probably the only things that matter.
> 
> Here's a simplified and generalized minor rewrite of the above, with a
> comment about what happens under Win2K and 2.3b2.  I've got no interest in
> chasing it down, since it's hung in the bowels of a Windows DLL and there's
> no evidence of a Python bug:
> 
> """
> import time
> import threading
> 
> # One thread hung at the end on Win2K at N == 2011.
> # No problem if N < 2011.
> N = 2011
> sem = threading.Semaphore(N)
> 
> class MyThread(threading.Thread):
>     def __init__(self):
>         threading.Thread.__init__(self)
>         sem.acquire()
> 
>     def run(self):
>         time.sleep(5)
>         sem.release()
> 
> for i in range(2*N):
>     MyThread().start()
> """
I tried it on Windows 2000 and XP.
I guess it could be a platform-specific bug, but it still disturbs me
because I later programmed the same thing in C - and it worked
perfectly. It's a long-shot, but I guess somewhere the bug is caused
due to a misuse by the python runtime (or perhaps an inefficient use)
of the platform-specific threading facilities...

The




More information about the Python-list mailing list