[Python-bugs-list] [Bug #110861] time.sleep() and threading (PR#307)

noreply@sourceforge.net noreply@sourceforge.net
Wed, 30 Aug 2000 10:13:38 -0700


Bug #110861, was updated on 2000-Aug-01 14:39
Here is a current snapshot of the bug.

Project: Python
Category: None
Status: Open
Resolution: Works For Me
Bug Group: Irreproducible
Priority: 5
Summary: time.sleep() and threading (PR#307)

Details: Jitterbug-Id: 307
Submitted-By: gpk@bell-labs.com
Date: Fri, 28 Apr 2000 11:28:19 -0400 (EDT)
Version: 1.5.2
OS: Solaris 2.6 sparc


python .../test/test_thread.py shows that time.sleep()
does not relinquish the processor.
As one thread goes to sleep, another thread ought
to start processing.   That doesn't happen.

Python was configured with --with-thread
and compiler flags -mt and -D_REENTRANT.
See line from config.status: s%@CC@%cc -mt -D_REENTRANT%g

EXAMPLE:

hce* python test_thread.py
creating task 1
creating task 2
creating task 3
creating task 4
creating task 5
creating task 6
creating task 7
creating task 8
creating task 9
creating task 10
waiting for all tasks to complete
task 1 will run for 9.9 sec		# goes to sleep here...
task 1 done				# 9.9 seconds later...
task 5 will run for 4.1 sec		# This should have started when task 1 slept.
task 5 done
task 7 will run for 9.9 sec
task 7 done
task 4 will run for 9.2 sec
task 4 done
task task 6 will run for 7.7 sec




====================================================================
Audit trail:
Mon May 22 17:23:26 2000	guido	changed notes
Mon May 22 17:23:26 2000	guido	moved from incoming to irreproducible

Follow-Ups:

Date: 2000-Aug-01 14:39
By: none

Comment:
From: Guido van Rossum <guido@python.org>
Subject: Re: [Python-bugs-list] time.sleep() and threading (PR#307)
Date: Wed, 03 May 2000 11:58:20 -0400

> python .../test/test_thread.py shows that time.sleep()
> does not relinquish the processor.
> As one thread goes to sleep, another thread ought
> to start processing.   That doesn't happen.
> 
> Python was configured with --with-thread
> and compiler flags -mt and -D_REENTRANT.
> See line from config.status: s%@CC@%cc -mt -D_REENTRANT%g
> 
> EXAMPLE:
> 
> hce* python test_thread.py
> creating task 1
> creating task 2
> creating task 3
> creating task 4
> creating task 5
> creating task 6
> creating task 7
> creating task 8
> creating task 9
> creating task 10
> waiting for all tasks to complete
> task 1 will run for 9.9 sec		# goes to sleep here...
> task 1 done				# 9.9 seconds later...
> task 5 will run for 4.1 sec		# This should have started when task 1 slept.
> task 5 done
> task 7 will run for 9.9 sec
> task 7 done
> task 4 will run for 9.2 sec
> task 4 done
> task task 6 will run for 7.7 sec

Hm...  It works correctly for me on Solaris 7 compiled with gcc, using
either Solaris threads or Posix threads.

I wonder if this could have something to do with the compiler you are
using?  (Are you using the SunPro compiler?)

There's not much I can do about this right now, sorry.

--Guido van Rossum (home page: http://www.python.org/~guido/)


-------------------------------------------------------

Date: 2000-Aug-01 14:39
By: none

Comment:
And wqent away when he upgraded to Py 1.6.
-------------------------------------------------------

Date: 2000-Aug-25 10:47
By: jhylton

Comment:
Can you test this with Sun's compiler?

-------------------------------------------------------

Date: 2000-Aug-30 10:13
By: gward

Comment:
I built the latest CVS Python 2.0 source on Solaris 2.6 with both GCC and the Sun Workshop compiler (4.2).  The test seems to be correct, ie. I don't get any long delays while task 1 is sleeping before subsequent tasks start up.

Haven't tried any earlier Python release.  Does anyone care, or should we call this one "Fixed in 2.0"?

-------------------------------------------------------

For detailed info, follow this link:
http://sourceforge.net/bugs/?func=detailbug&bug_id=110861&group_id=5470