Changeset 1591

Show
Ignore:
Timestamp:
10/30/08 20:06:22 (2 months ago)
Author:
peet
Message:

new signal model

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/0.4.7/modules-heartbeat/ap-cluster.py

    r1358 r1591  
    3030CL_DOMAIN = "_cxheartbeat._udp.local" 
    3131 
    32 def acquire(signal,mutex,cell,name): 
     32def acquire(signal,mutex,cell,name,env): 
    3333        res = mutex.acquire() 
    3434        cell["status"] = res 
    3535        cell["thread"] = None 
    36         signal(("mutex","mutex.%s.lock" % (name)), {"res": res}
     36        signal(("mutex","mutex.%s.lock" % (name)), {"res": res}, env
    3737 
    3838 
     
    5353        } 
    5454 
     55        def immediate(self, argv): 
     56                self.uid = UID() 
     57                sig = "mutex.%s.lock" % (argv.envl.name) 
     58                self.catch = (sig,) 
     59                self.signal_keys[sig] = cmask.ScriptUp 
     60                self.lock = Lock() 
     61 
    5562        def pre(self, argv): 
    56  
    57                 command.pre(self,argv) 
    58                 if argv.call_mask & cmask.Immediate: 
    59                         self.uid = UID() 
    60                         sig = "mutex.%s.lock" % (argv.envl.name) 
    61                         self.catch = (sig,) 
    62                         self.signal_keys[sig] = cmask.ScriptUp 
    63                         self.lock = Lock() 
    64                         return 
    6563 
    6664                # if there is an acquired mutex, run `postUp()` through all subtree 
     
    10098                        mx.instance: 
    10199 
    102                         t = Thread(target=acquire,args=(self.signal,mx.instance,argv.envg.mx[argv.envl.name],argv.envl.name)) 
     100                        t = Thread(target=acquire,args=(self.signal,mx.instance,argv.envg.mx[argv.envl.name],argv.envl.name, argv.env)) 
    103101                        mx.thread = t 
    104102                        t.start() 
     
    124122                # 
    125123                ### 
     124                self.log("debug","Alliluja!") 
    126125                self.lock.release() 
    127126