self.memorypool_update()
print_log("Memory pool initialized.")
- threading.Timer(10, self.main_iteration).start()
+ self.timer = threading.Timer(10, self.main_iteration)
+ self.timer.start()
try:
respdata = urllib.urlopen(self.bitcoind_url, postdata).read()
except:
+ print_log("error calling bitcoind")
traceback.print_exc(file=sys.stdout)
self.shared.stop()
hist = self.storage.get_history(addr)
is_known = True
except:
+ print_log("error get_history")
self.shared.stop()
raise
if hist:
if session in l:
l.remove(session)
if session in l:
- print "error rc!!"
+ print_log("error rc!!")
self.shared.stop()
if l == []:
self.watched_addresses.pop(addr)
try:
respdata = urllib.urlopen(self.bitcoind_url, postdata).read()
except:
+ print_log("bitcoind error (getfullblock)")
traceback.print_exc(file=sys.stdout)
self.shared.stop()
# TODO: update cache here. if new value equals cached value, do not send notification
self.address_queue.put((address,sessions))
+
+ def close(self):
+ self.timer.join()
+ print_log("Closing database...")
+ self.storage.close()
+ print_log("Database is closed")
+
+
def main_iteration(self):
if self.shared.stopped():
- print_log("blockchain processor terminating")
- self.storage.close()
+ print_log("Stopping timer")
return
with self.dblock:
'params': [addr, status],
})
- if not self.shared.stopped():
- threading.Timer(10, self.main_iteration).start()
- else:
- print_log("blockchain processor terminating")
+ # next iteration
+ self.timer = threading.Timer(10, self.main_iteration)
+ self.timer.start()
+