summaryrefslogtreecommitdiff
path: root/src/hub/src/spreadspace.org/sfive/s5srvForward.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/hub/src/spreadspace.org/sfive/s5srvForward.go')
-rw-r--r--src/hub/src/spreadspace.org/sfive/s5srvForward.go14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/hub/src/spreadspace.org/sfive/s5srvForward.go b/src/hub/src/spreadspace.org/sfive/s5srvForward.go
index 00542a4..6b3e654 100644
--- a/src/hub/src/spreadspace.org/sfive/s5srvForward.go
+++ b/src/hub/src/spreadspace.org/sfive/s5srvForward.go
@@ -60,6 +60,16 @@ func (self StatsSinkServer) getLastUpdate(baseurl string, client *http.Client) (
return
}
+func (self StatsSinkServer) getUpdatesAfterInvoke(id int) (values []StatisticsData, err error) {
+ token := getUpdatesAfterToken{id: id, response: make(chan getUpdatesAfterResult, 1)}
+ defer close(token.response)
+ self.getUpdatesAfterChan <- token
+ res := <-token.response
+ values = res.values
+ err = res.err
+ return
+}
+
func (self StatsSinkServer) handleForwarding(baseurl string, client *http.Client) {
url := baseurl + "/updates"
tryResync:
@@ -76,7 +86,7 @@ tryResync:
nextBatch:
for {
- updates, err := self.store.GetUpdatesAfter(lastId)
+ updates, err := self.getUpdatesAfterInvoke(lastId)
if err != nil {
s5l.Printf("fwd: failed reading updates: %v\n", err)
time.Sleep(500 * time.Millisecond)
@@ -115,7 +125,7 @@ tryResync:
lastId = findMaxId(updates)
s5l.Printf("fwd: new lastid: %d", lastId)
- time.Sleep(2 * time.Second)
+ time.Sleep(1 * time.Second)
}
}
}