def wrapfunc(*wrap_args, **wrap_kwargs): process_id = pycsp.current_process_id() sendTrace({'type':'StartProcess', 'func_name':func.func_name, 'process_id':process_id}) try: func(*wrap_args, **wrap_kwargs) finally: sendTrace({'type':'QuitProcess', 'func_name':func.func_name, 'process_id':process_id})
def __call__(self, msg): process_id = pycsp.current_process_id() sendTrace({ 'type': 'BlockOnWrite', 'id': self.count, 'chan_name': self.wrapped.channel.name, 'process_id': process_id }) self.wrapped.__call__(msg) sendTrace({ 'type': 'DoneWrite', 'id': self.count, 'chan_name': self.wrapped.channel.name, 'process_id': process_id }) # try: # sendTrace({'type':'BlockOnWrite', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) # self.wrapped.__call__(msg) # sendTrace({'type':'DoneWrite', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) # except pycsp.ChannelRetireException: # sendTrace({'type':'PoisonWrite', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) # raise pycsp.ChannelRetireException # except pycsp.ChannelPoisonException: # sendTrace({'type':'RetireWrite', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) # raise pycsp.ChannelPoisonException self.count += 1
def TraceMsg(s): """ TraceMsg(<message>) Will add the trace message to the log: {'type':'Msg', 'msg':<message>} """ sendTrace({'type':'Msg', 'process_id':pycsp.current_process_id(), 'msg':str(s)})
def TraceMsg(s): """ TraceMsg(<message>) Will add the trace message to the log: {'type':'Msg', 'msg':<message>} """ sendTrace({"type": "Msg", "process_id": pycsp.current_process_id(), "msg": str(s)})
def __call__(self): process_id = pycsp.current_process_id() sendTrace({'type':'BlockOnRead', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) msg = self.wrapped.__call__() sendTrace({'type':'DoneRead', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) self.count += 1 return msg
def wrapfunc(*wrap_args, **wrap_kwargs): process_id = pycsp.current_process_id() sendTrace({"type": "StartProcess", "func_name": func.func_name, "process_id": process_id}) try: func(*wrap_args, **wrap_kwargs) finally: sendTrace({"type": "QuitProcess", "func_name": func.func_name, "process_id": process_id})
def retire(self): process_id = pycsp.current_process_id() sendTrace({ 'type': 'Retire', 'id': self.count, 'chan_name': self.wrapped.channel.name, 'process_id': process_id }) self.wrapped.retire()
def poison(self): process_id = pycsp.current_process_id() sendTrace({ 'type': 'Poison', 'id': self.count, 'chan_name': self.wrapped.channel.name, 'process_id': process_id }) self.wrapped.poison()
def __init__(self, guards): self.wrapped = pycsp.Alternation(guards) self.wrapped.set_execute_frame(-2) self.set_execute_frame = self.wrapped.set_execute_frame process_id = pycsp.current_process_id() val = {'type':'Alternation', 'guards':[], 'process_id':process_id} for g_tuple in self.wrapped.guards: val['guards'].append(self.__translate(g_tuple[0])) sendTrace(val)
def __init__(self, guards, ensurePriority=False): self.wrapped = pycsp.Alternation(guards, ensurePriority=ensurePriority) self.wrapped._set_execute_frame(-2) self._set_execute_frame = self.wrapped._set_execute_frame process_id = pycsp.current_process_id() val = {"type": "Alternation", "guards": [], "process_id": process_id} for g_tuple in self.wrapped.guards: val["guards"].append(self.__translate(g_tuple[0])) sendTrace(val)
def __init__(self, guards, ensurePriority=False): self.wrapped = pycsp.Alternation(guards, ensurePriority=ensurePriority) self.wrapped._set_execute_frame(-2) self._set_execute_frame = self.wrapped._set_execute_frame process_id = pycsp.current_process_id() val = {'type': 'Alternation', 'guards': [], 'process_id': process_id} for g_tuple in self.wrapped.guards: val['guards'].append(self.__translate(g_tuple[0])) sendTrace(val)
def Spawn(*plist): process_id = pycsp.current_process_id() val = {'type':'Spawn', 'processes':[], 'process_id':process_id} for p in plist: if type(p) == type([]): for p_2 in p: val['processes'].append({'func_name':p_2.fn.func_name, 'process_id':p_2.id}) else: val['processes'].append({'func_name':p.fn.func_name, 'process_id':p.id}) sendTrace(val) pycsp.Spawn(*plist)
def __call__(self): process_id = pycsp.current_process_id() sendTrace( {"type": "BlockOnRead", "id": self.count, "chan_name": self.wrapped.channel.name, "process_id": process_id} ) msg = self.wrapped.__call__() sendTrace( {"type": "DoneRead", "id": self.count, "chan_name": self.wrapped.channel.name, "process_id": process_id} ) self.count += 1 return msg
def Spawn(*plist): process_id = pycsp.current_process_id() val = {"type": "Spawn", "processes": [], "process_id": process_id} for p in plist: if type(p) == type([]): for p_2 in p: val["processes"].append({"func_name": p_2.fn.func_name, "process_id": p_2.id}) else: val["processes"].append({"func_name": p.fn.func_name, "process_id": p.id}) sendTrace(val) pycsp.Spawn(*plist)
def TraceMsg(s): """ TraceMsg(<message>) Will add the trace message to the log: {'type':'Msg', 'msg':<message>} """ sendTrace({ 'type': 'Msg', 'process_id': pycsp.current_process_id(), 'msg': str(s) })
def execute(self): process_id = pycsp.current_process_id() sendTrace({ 'type': 'BlockOnAlternation.execute', 'process_id': process_id }) result = self.wrapped.execute() sendTrace({ 'type': 'DoneAlternation.execute', 'guard': self.__translate(result[0]), 'process_id': process_id }) return result
def Sequence(*plist): process_id = pycsp.current_process_id() val = {'processes':[], 'process_id':process_id} for p in plist: if type(p) == type([]): for p_2 in p: val['processes'].append({'func_name':p_2.fn.func_name, 'process_id':p_2.id}) else: val['processes'].append({'func_name':p.fn.func_name, 'process_id':p.id}) val['type'] = 'BlockOnSequence' sendTrace(val) pycsp.Sequence(*plist) val['type'] = 'DoneSequence' sendTrace(val)
def wrapfunc(*wrap_args, **wrap_kwargs): process_id = pycsp.current_process_id() sendTrace({ 'type': 'StartProcess', 'func_name': func.func_name, 'process_id': process_id }) try: func(*wrap_args, **wrap_kwargs) finally: sendTrace({ 'type': 'QuitProcess', 'func_name': func.func_name, 'process_id': process_id })
def Sequence(*plist): process_id = pycsp.current_process_id() val = {"processes": [], "process_id": process_id} for p in plist: if type(p) == type([]): for p_2 in p: val["processes"].append({"func_name": p_2.fn.func_name, "process_id": p_2.id}) else: val["processes"].append({"func_name": p.fn.func_name, "process_id": p.id}) val["type"] = "BlockOnSequence" sendTrace(val) result = pycsp.Sequence(*plist) val["type"] = "DoneSequence" sendTrace(val) return result
def __call__(self): process_id = pycsp.current_process_id() sendTrace({ 'type': 'BlockOnRead', 'id': self.count, 'chan_name': self.wrapped.channel.name, 'process_id': process_id }) msg = self.wrapped.__call__() sendTrace({ 'type': 'DoneRead', 'id': self.count, 'chan_name': self.wrapped.channel.name, 'process_id': process_id }) self.count += 1 return msg
def Spawn(*plist): process_id = pycsp.current_process_id() val = {'type': 'Spawn', 'processes': [], 'process_id': process_id} for p in plist: if type(p) == type([]): for p_2 in p: val['processes'].append({ 'func_name': p_2.fn.func_name, 'process_id': p_2.id }) else: val['processes'].append({ 'func_name': p.fn.func_name, 'process_id': p.id }) sendTrace(val) pycsp.Spawn(*plist)
def __call__(self, msg): process_id = pycsp.current_process_id() sendTrace({'type':'BlockOnWrite', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) self.wrapped.__call__(msg) sendTrace({'type':'DoneWrite', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) # try: # sendTrace({'type':'BlockOnWrite', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) # self.wrapped.__call__(msg) # sendTrace({'type':'DoneWrite', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) # except pycsp.ChannelRetireException: # sendTrace({'type':'PoisonWrite', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) # raise pycsp.ChannelRetireException # except pycsp.ChannelPoisonException: # sendTrace({'type':'RetireWrite', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) # raise pycsp.ChannelPoisonException self.count += 1
def Sequence(*plist): process_id = pycsp.current_process_id() val = {'processes': [], 'process_id': process_id} for p in plist: if type(p) == type([]): for p_2 in p: val['processes'].append({ 'func_name': p_2.fn.func_name, 'process_id': p_2.id }) else: val['processes'].append({ 'func_name': p.fn.func_name, 'process_id': p.id }) val['type'] = 'BlockOnSequence' sendTrace(val) result = pycsp.Sequence(*plist) val['type'] = 'DoneSequence' sendTrace(val) return result
def Parallel(*plist): process_id = pycsp.current_process_id() val = {'processes': [], 'process_id': process_id} for p in plist: if type(p) == type([]): for p_2 in p: val['processes'].append({ 'func_name': p_2.fn.__name__, 'process_id': p_2.id }) else: val['processes'].append({ 'func_name': p.fn.__name__, 'process_id': p.id }) val['type'] = 'BlockOnParallel' sendTrace(val) result = pycsp.Parallel(*plist) val['type'] = 'DoneParallel' sendTrace(val) return result
def retire(self): process_id = pycsp.current_process_id() sendTrace({'type':'Retire', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) self.wrapped.retire()
def retire(self): process_id = pycsp.current_process_id() sendTrace( {"type": "Retire", "id": self.count, "chan_name": self.wrapped.channel.name, "process_id": process_id} ) self.wrapped.retire()
def poison(self): process_id = pycsp.current_process_id() sendTrace( {"type": "Poison", "id": self.count, "chan_name": self.wrapped.channel.name, "process_id": process_id} ) self.wrapped.poison()
def execute(self): process_id = pycsp.current_process_id() sendTrace({"type": "BlockOnAlternation.execute", "process_id": process_id}) result = self.wrapped.execute() sendTrace({"type": "DoneAlternation.execute", "guard": self.__translate(result[0]), "process_id": process_id}) return result
def execute(self): process_id = pycsp.current_process_id() sendTrace({'type':'BlockOnAlternation.execute', 'process_id':process_id}) result = self.wrapped.execute() sendTrace({'type':'DoneAlternation.execute', 'guard':self.__translate(result[0]), 'process_id':process_id}) return result
def poison(self): process_id = pycsp.current_process_id() sendTrace({'type':'Poison', 'id':self.count, 'chan_name':self.wrapped.channel.name, 'process_id':process_id}) self.wrapped.poison()