def __service(func, resource, message):
assert isinstance(resource, Resource)
assert isinstance(message, simpype.Message)
message.location = resource
if inspect.isgeneratorfunction(func):
mid = str(message.id)+str(message.seq_num)
a_serve = resource.env.process(func(resource, message))
resource.task[mid] = Task(message.sim, message, a_serve)
try:
yield a_serve
message.timestamp('resource.serve')
except simpy.Interrupt as interrupt:
message.timestamp('resource.'+str(interrupt.cause))
del resource.task[mid]
else:
func(resource, message)
message.timestamp('resource.serve')
if message.next:
resource.send(message)
else:
message.done()
评论列表
文章目录