Merge pull request #1216 from kyuupichan/network-unthread
No need for thread to handle requests
This commit is contained in:
commit
107cfc058d
|
@ -1,4 +1,3 @@
|
||||||
import threading
|
|
||||||
import time
|
import time
|
||||||
import Queue
|
import Queue
|
||||||
import os
|
import os
|
||||||
|
@ -129,7 +128,6 @@ class Network(util.DaemonThread):
|
||||||
config = {} # Do not use mutables as default values!
|
config = {} # Do not use mutables as default values!
|
||||||
util.DaemonThread.__init__(self)
|
util.DaemonThread.__init__(self)
|
||||||
self.config = SimpleConfig(config) if type(config) == type({}) else config
|
self.config = SimpleConfig(config) if type(config) == type({}) else config
|
||||||
self.lock = threading.Lock()
|
|
||||||
self.num_server = 8 if not self.config.get('oneserver') else 0
|
self.num_server = 8 if not self.config.get('oneserver') else 0
|
||||||
self.blockchain = Blockchain(self.config, self)
|
self.blockchain = Blockchain(self.config, self)
|
||||||
self.interfaces = {}
|
self.interfaces = {}
|
||||||
|
@ -303,8 +301,6 @@ class Network(util.DaemonThread):
|
||||||
self.running = True
|
self.running = True
|
||||||
self.response_queue = response_queue
|
self.response_queue = response_queue
|
||||||
self.start_interfaces()
|
self.start_interfaces()
|
||||||
t = threading.Thread(target=self.process_requests_thread)
|
|
||||||
t.start()
|
|
||||||
self.blockchain.start()
|
self.blockchain.start()
|
||||||
util.DaemonThread.start(self)
|
util.DaemonThread.start(self)
|
||||||
|
|
||||||
|
@ -433,12 +429,11 @@ class Network(util.DaemonThread):
|
||||||
else:
|
else:
|
||||||
self.response_queue.put(response)
|
self.response_queue.put(response)
|
||||||
|
|
||||||
def process_requests_thread(self):
|
def handle_requests(self):
|
||||||
while self.is_running():
|
|
||||||
try:
|
try:
|
||||||
request = self.requests_queue.get(timeout=0.1)
|
request = self.requests_queue.get(timeout=0.1)
|
||||||
except Queue.Empty:
|
except Queue.Empty:
|
||||||
continue
|
return
|
||||||
self.process_request(request)
|
self.process_request(request)
|
||||||
|
|
||||||
def process_request(self, request):
|
def process_request(self, request):
|
||||||
|
@ -470,14 +465,7 @@ class Network(util.DaemonThread):
|
||||||
|
|
||||||
# store unanswered request
|
# store unanswered request
|
||||||
self.unanswered_requests[_id] = request
|
self.unanswered_requests[_id] = request
|
||||||
|
|
||||||
try:
|
|
||||||
self.interface.send_request(request)
|
self.interface.send_request(request)
|
||||||
except:
|
|
||||||
# put it back in the queue
|
|
||||||
self.print_error("warning: interface not ready for", request)
|
|
||||||
self.requests_queue.put(request)
|
|
||||||
time.sleep(0.1)
|
|
||||||
|
|
||||||
def check_interfaces(self):
|
def check_interfaces(self):
|
||||||
now = time.time()
|
now = time.time()
|
||||||
|
@ -509,6 +497,7 @@ class Network(util.DaemonThread):
|
||||||
def run(self):
|
def run(self):
|
||||||
while self.is_running():
|
while self.is_running():
|
||||||
self.check_interfaces()
|
self.check_interfaces()
|
||||||
|
self.handle_requests()
|
||||||
try:
|
try:
|
||||||
i, response = self.queue.get(timeout=0.1)
|
i, response = self.queue.get(timeout=0.1)
|
||||||
except Queue.Empty:
|
except Queue.Empty:
|
||||||
|
|
Loading…
Reference in New Issue