Provide MxAgents with a dual state model
@hyperthunk ci sta già lavorando.
Dal 13/2/2017.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
It's often the case that whilst initialising an agent might need to wait on other actors, so we should either copy the init >>= serve model from client-server, or provide a dual state monadic environment so we don't have code like this...
data AgentState = Booting | ActualState { f1 = ..., f2 = ... }
-- and inside a listener
startIt = mxAgent agentId Booting [ mxSink handlePeersReady, mxSink handleEvent ]
where
handleEvent Booting = mxSkip
handleEvent ActualState{...} = ...
And worse still, have to worry about the boot state when you're buried in implementation code...
forwardToServer _ HBAgentBoot = liftMX terminate -- state invariant
forwardToServer ev' HBAgent{ hbServer = sPid }
= liftMX (send sPid ev') >> mxReady
handleRestarts _ HBAgentBoot = liftMX terminate -- state invariant
handleRestarts pid sta@HBAgent{ hbServer = sPid' }
| pid == sPid' = restartBoth sta
| otherwise = mxReady
On the other hand, we want this API to remain as simple as possible, since here we're providing service and utility, and policy belongs elsewhere.
- Lingua principale
- Haskell
- Stelle
- 753
- Fork
- 101
- Merge medio
- 1g 3h
- PR unite (30g)
- 4
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di haskell-distributed/distributed-process
-
enhancement Feature Request
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
haskell-distributed/distributed-process#486 · 1 commento · 1 reazione ·
-
discuss enhancement Feature Request
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
haskell-distributed/distributed-process#478 · 4 commenti · 3 reazioni ·
-
enhancement Feature Request
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
haskell-distributed/distributed-process#476 · 2 reazioni ·
-
Demonstrating the use of Cloud Haskell for a Raft implementationForse di nuovo libera @LaurentRDC l’ha presa 483 giorni fa e non c’è nessuna pull request aperta. Apertaenhancement Feature Request
haskell-distributed/distributed-process#475 · 3 reazioni · 1 assegnatario ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
haskell-distributed/distributed-process#473 · 4 commenti · 1 reazione ·
Tutte le issue di haskell-distributed/distributed-process
Issue simili
-
MorphRule, DataizeRule and ContextualizeRule silently accept unknown YAML keys, unlike rewrite `Rule`Forse già presa @renyamamoto2026-cmyk l’ha presa 1 giorno fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
objectionary/phino#2107 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
tweag/tricorder#640 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno