def recv(self, msgid=None): if msgid is None: return self.realrecv() else: msgid = str(msgid[0]), str(msgid[1]), int(msgid[2]) ms_lock.acquire() try: if message_store.has_key(msgid[2]): m = message_store[msgid[2]] del message_store[msgid[2]] return m s = threading.Semaphore(0) return_locks[msgid[2]] = s finally: ms_lock.release() s.acquire() ms_lock.acquire() try: try: del return_locks[msgid[2]] except IndexError: raise IndexError, "Missing return lock %s in %s" % ( str(msgid), str(return_locks.keys())) m = message_store[msgid[2]] del message_store[msgid[2]] finally: ms_lock.release() return convertFrom(m[1])
def recv(self, msgid=None): if msgid is None: return self.realrecv() else: msgid = str(msgid[0]), str(msgid[1]), int(msgid[2]) ms_lock.acquire() try: if message_store.has_key(msgid[2]): m = message_store[msgid[2]] del message_store[msgid[2]] return m s = threading.Semaphore(0) return_locks[msgid[2]] = s finally: ms_lock.release() s.acquire() ms_lock.acquire() try: try: del return_locks[msgid[2]] except IndexError: raise IndexError, "Missing return lock %s in %s" % (str(msgid), str(return_locks.keys())) m = message_store[msgid[2]] del message_store[msgid[2]] finally: ms_lock.release() return convertFrom(m[1])
def job(target, args): target(*convertFrom(args))