diff options
Diffstat (limited to 'Lib/sched.py')
| -rw-r--r-- | Lib/sched.py | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/Lib/sched.py b/Lib/sched.py index b70a998..6abd251 100644 --- a/Lib/sched.py +++ b/Lib/sched.py @@ -11,8 +11,8 @@  # and millisleep from the built-in module time, or you can implement  # simulated time by writing your own functions.  This can also be  # used to integrate scheduling with STDWIN events; the delay function -# is allowed to modify the queue.  Time can be expressed -# as integers or floating point numbers, as long as it is consistent. +# is allowed to modify the queue.  Time can be expressed as +# integers or floating point numbers, as long as it is consistent.  # Events are specified by tuples (time, priority, action, argument).  # As in UNIX, lower priority numbers mean higher priority; in this @@ -83,6 +83,11 @@ class scheduler():  	# exceptions are not caught but the scheduler's state  	# remains well-defined so run() may be called again.  	# +	# A questionably hack is added to allow other threads to run: +	# just after an event is executed, a delay of 0 is executed, +	# to avoid monopolizing the CPU when other threads are also +	# runnable. +	#  	def run(self):  		q = self.queue  		while q: @@ -93,4 +98,5 @@ class scheduler():  			else:  				del q[0]  				void = action(argument) +				self.delayfunc(0) # Let other threads run  	#  | 
