def main(): global incoming, incoming_lock, N, pid, port, root_port, send # Read global state. pid = int(sys.argv[1]) N = int(sys.argv[2]) port = int(sys.argv[3]) # Start and configure debugger LOG.basicConfig(filename='LOG/%d.log' % pid, level=LOG.DEBUG) # Create the necessary classes. mhandler = MasterHandler(pid, address, port) handler = WorkerThread(address, root_port + pid) communicator = Communicator(incoming, incoming_lock, pid, send, mhandler) #LOG.debug('Handlers initiated') acceptors = [(i, 'acceptor') for i in xrange(N)] leaders = [(i, 'leader') for i in xrange(N)] replicas = [(i, 'replica') for i in xrange(N)] acceptor = Acceptor(communicator) my_dict = dict() replica = Replica(leaders, my_dict, communicator) leader = Leader(acceptors, replicas, communicator) acceptor.start() handler.start() mhandler.start() while not os.path.isfile('LOG/%d.log' % (N - 1)): time.sleep(0.1) leader.start() replica.start() LOG.debug('main() ends IDENTITY pid: %d, port: %d ' % (pid, port))
def readqueue(self): queue = Queue.Queue() try: f = open('user.queue', 'r') for line in f: queue.queue = deque(eval(line)) except: "" finally: return queue if __name__=="__main__": bullyalgorithm(opt=False) producer = Producer() producer.setDaemon(True) producer.start() consumer = Consumer(producer.queue) consumer.setDaemon(True) consumer.start() acceptor = Acceptor() acceptor.setDaemon(True) acceptor.start() while threading.active_count() > 0: time.sleep(0.1)
def readqueue(self): queue = Queue.Queue() try: f = open('user.queue', 'r') for line in f: queue.queue = deque(eval(line)) except: "" finally: return queue if __name__ == "__main__": bullyalgorithm(opt=False) producer = Producer() producer.setDaemon(True) producer.start() consumer = Consumer(producer.queue) consumer.setDaemon(True) consumer.start() acceptor = Acceptor() acceptor.setDaemon(True) acceptor.start() while threading.active_count() > 0: time.sleep(0.1)