heighttracker pushes update to tracker
authorForrest Voight <forrest@forre.st>
Wed, 3 Aug 2011 08:14:46 +0000 (04:14 -0400)
committerForrest Voight <forrest@forre.st>
Wed, 3 Aug 2011 08:14:46 +0000 (04:14 -0400)
p2pool/bitcoin/p2p.py
p2pool/main.py

index 00a5e71..56f1642 100644 (file)
@@ -340,6 +340,8 @@ class HeightTracker(object):
         
         self.last_notified_size = 0
         
+        self.updated = variable.Event()
+        
         self.think()
     
     def think(self):
@@ -373,8 +375,15 @@ class HeightTracker(object):
             self.request([head], None)
     
     def heard_headers(self, headers):
+        changed = False
         for header in headers:
-            self.tracker.add(HeaderWrapper(header))
+            hw = HeaderWrapper(header)
+            if hw.hash in self.tracker.shares:
+                continue
+            changed = True
+            self.tracker.add(hw)
+        if changed:
+            self.updated.happened()
         self.think()
         
         if len(self.tracker.shares) > self.last_notified_size + 10:
index bf0851e..e71de1f 100644 (file)
@@ -491,6 +491,8 @@ def main(args):
         print 'Started successfully!'
         print
         
+        ht.updated.watch(lambda x: set_real_work2())
+        
         @defer.inlineCallbacks
         def work1_thread():
             while True: