Example #1
0
 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})
Example #2
0
    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
Example #3
0
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)})
Example #4
0
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)})
Example #5
0
 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
Example #6
0
 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})
Example #7
0
 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()
Example #8
0
 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()
Example #9
0
    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)
Example #10
0
    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)
Example #11
0
    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)
Example #12
0
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)
Example #13
0
 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
Example #14
0
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)
Example #15
0
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)
    })
Example #16
0
 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
Example #17
0
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)
Example #18
0
 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
         })
Example #19
0
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
Example #20
0
 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
Example #21
0
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)
Example #22
0
    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
Example #23
0
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
Example #24
0
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
Example #25
0
 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()       
Example #26
0
 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()
Example #27
0
 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()
Example #28
0
 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
Example #29
0
 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
Example #30
0
 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()