with timeout(...):
John Nagle
nagle at animats.com
Thu Mar 29 14:34:56 EDT 2007
Diez B. Roggisch wrote:
> Nick Craig-Wood wrote:
>
>
>>Did anyone write a contextmanager implementing a timeout for
>>python2.5?
>>
>>And have it work reliably and in a cross platform way!
>
> Cross platform isn't the issue here - reliability though is. To put it
> simple: can't be done that way. You could of course add a timer to the
> python bytecode core, that would "jump back" to a stored savepoint or
> something like that.
Early versions of Scheme had a neat solution to this problem.
You could run a function with a limited amount of "fuel". When the
"fuel" ran out, the call returned with a closure. You could
run the closure again and pick up from where the function had been
interrupted, or just discard the closure.
So there's conceptually a clean way to do this. It's probably
not worth having in Python, but there is an approach that will work.
LISP-type systems tend to be more suitable for this sort of thing.
Traditionally, LISP had the concept of a "break", where
execution could stop and the programmer (never the end user) could
interact with the computation in progress.
John Nagle
More information about the Python-list
mailing list