from SimPy.Simulation import * from addBinFinite import * buffer=Bin(capacity=5,name="boundBin") class producer(Process): def produce(self): while True: yield put,self,buffer,2 print now(),"put in 2" assert buffer.inBin<=buffer.capacity,"buffer overflow" yield hold,self,2 class consumer(Process): def consume(self): while True: yield get,self,buffer,3 assert buffer.inBin>=0,"buffer underflow" print now(),"took out 3" yield hold,self,15 initialize() p=producer("producer") activate(p,p.produce()) c=consumer("consumer") activate(c,c.consume()) print simulate(until=200)