summaryrefslogtreecommitdiff
path: root/src/router.moon
diff options
context:
space:
mode:
authorAlexander M Pickering <alex@cogarr.net>2025-01-19 15:23:06 -0600
committerAlexander M Pickering <alex@cogarr.net>2025-01-19 15:23:06 -0600
commitda9dd31f504d30f33922cdf362a7c01673a6b927 (patch)
tree6e3247dc8f57c16fd02d7ac07246d82c8ab65ccb /src/router.moon
parent90ee66a3a6aae10fd84f3f43844db55229933e37 (diff)
downloadggj25-da9dd31f504d30f33922cdf362a7c01673a6b927.tar.gz
ggj25-da9dd31f504d30f33922cdf362a7c01673a6b927.tar.bz2
ggj25-da9dd31f504d30f33922cdf362a7c01673a6b927.zip
Last commit before theme release
Diffstat (limited to 'src/router.moon')
-rw-r--r--src/router.moon16
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}