Add to it freely, please!
The tarball for SimPy-2.0 seems to have a fault - all files (even .html etc) are marked executable.
From the Simpy users list:
Klaus Muller: - Is there a requirement for modelling situations other than resource queuing with timeout? Would e.g.
yield (waitevent,self,eventlist),(hold,self,timeout), or
yield (get,self,aStore),(hold,self,timeout)
be useful? Is there a perceived need for it in the user community?
Steven H. Rogers: - Votes in favor of such feature.
Gustavo Carneiro: - I'd very much like to see yield take an arbitrary list of operations to block on, in conjunction with some API to find out which condition actually happened after yield "returns". [in python 2.5 yield will actually be able to return values, fortunately].
I'd also like to request that my patch---that adds the SimPy.who() API---be included, as it can be quite useful for e.g. logging. (KlausMuller: the patch implements a function which returns the currently executing process.)
Matt Kuperholz: - This functionality would be very useful for my contact centre simulation, if I understand correctly : that a “caller” would attempt to “get” a resource from a particular store, but is prepared to abandon the call if not answered in a certain amount of time.
Space for user inputs on this subject into this wiki:
GustavoCarneiro?: Back to the subject of yield, I once asked on python-dev how co-routines (i.e. generator functions) should call functions containing yield by themselves. Here is the [problem statement], and here's [one of the answers I got]. Bottom line is, it would be nice if SimPy recognized generators in yield arguments as being subroutines that should be executed as if they belonged to the body of the caller process.
BernhardMulder?: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/498270 sketches a different approach: Using a custom metaclass to transform ordinary functions into generator functions, and then use a small runtime to drive the execution. The approach sketched there only works with Python 2.5. SIMPY would be programmed totally differently if this approach were to be adopted: instead of using yield to transfer control, one would call a function of a runtime package.