Tim Peters wrote in news:mailman.1223.1112417955.1799.python- [EMAIL PROTECTED] in comp.lang.python:
> [Paul Rubin] >> I'd like to have a function (or other callable object) that returns >> 0, 1, 2, etc. on repeated calls. That is: >> >> print f() # prints 0 >> print f() # prints 1 >> print f() # prints 2 >> # etc. >> >> There should never be any possibility of any number getting returned >> twice, or getting skipped over, even if f is being called from >> multiple threads. >> >> What's the simplest and most natural way to do this? I can think of a >> few but am not sure that they work. And I can think of some ways that >> are sure to work, but are messier than I'd like. > > The GIL is your friend here: > Yes but IIUC the GIL is only CPython, will this work with Jython, IornPython etc ? (*) > import itertools > f = itertools.count().next > *) I'm either being rhetorical or stupid, not sure which :). Rob. -- http://www.victim-prime.dsl.pipex.com/ -- http://mail.python.org/mailman/listinfo/python-list