diff options
Diffstat (limited to 'src/router.moon')
| -rw-r--r-- | src/router.moon | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/router.moon b/src/router.moon index 7ef9bfc..e414f07 100644 --- a/src/router.moon +++ b/src/router.moon @@ -72,7 +72,7 @@ net.register_message("Simplify",{required:{ --Testing net.register_message("Raw",{optional:{s:"string"}}) - +router_singleton = nil class Queue new: () => @queue = {} @@ -86,15 +86,17 @@ class Router @peerlist = {} @routes = {} - -- "uninitalized", "peer", "candidate", "elected" - @state = "unitialized" + -- "uninitialized", "peer", "candidate", "elected" + @state = "uninitialized" -- [peerid] = "votes for peerid" + @nonce = 0 @prevotes = {} @term = 0 -- The uncommited queue @uncommited = Queue! + router_singleton = @ initalize: (id) => @set_route("RequestClusterInfo",(conn, message) => @@ -242,4 +244,10 @@ class Router else log.warn("No message callback registered for format " .. msgfmt .. " routes are: " .. tostring(@routes), {"net"}) -{:Router} +node = am.group! +node\update(() -> + if router_singleton and router_singleton.state ~= "uninitalized" + net.pump! + coroutine.yield! +) +{:Router, :node} |
