How to let a loop run for a while before checking for break condition?

Claudio Grondi claudio.grondi at freenet.de
Mon Aug 28 15:30:17 EDT 2006


Sorin Schwimmer wrote:
> I am thinking on something in the following form:
> 
> <code>
> import time
> import thread
> 
> delay=True
> 
> def fn()
>   global delay
>   time.sleep(<your_amount_of_time_in_seconds>)
>   delay=False
> 
> thread.start_new_thread(fn,())
> 
> while delay:
>  <statement 1>
>  <statement 2>
>  ...
> 
> while <other_condition>:
>  <statement 1>
>  <statement 2>
>  ...
> </code>
> 
> Or, if you need to use "break", the second loop may be
> something like:
> 
> <code>
> while True:
>  <statement 1>
>  <statement 2>
>  ...
>  if <other_condition>: break
>  <other_statements>
>  ...
> </code>
> 
> The two while loops have the same content, but the
> first is terminated after a pre-determined amount of
> time, while the second by another condition. Usually
> the content of the too loops, being the same, is a
> call to a function that does the actual work. In your
> case, as time seems to be critical, you don't want to
> spend it in function-call overheads, so you repeat
> (cut'n'paste) the relevant code.
> 
> Of course, the price to be paid is in maintenance
> headache: you'll have to make all the changes in both
> loops, to keep consistency.
> 
> I hope this helps.
It doesn't.

Claudio



More information about the Python-list mailing list