Provide MxAgents with a dual state model
@hyperthunk y travaille déjà.
Depuis le 13/2/2017.
Évaluation
Cette issue n'a pas encore été évaluée.
Description
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.
- Langage dominant
- Haskell
- Étoiles
- 753
- Forks
- 101
- Merge moyen
- 1 j 3 h
- PR mergées (30 j)
- 4
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de haskell-distributed/distributed-process
-
enhancement Feature Request
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
haskell-distributed/distributed-process#486 · 1 commentaire · 1 réaction ·
-
discuss enhancement Feature Request
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
haskell-distributed/distributed-process#478 · 4 commentaires · 3 réactions ·
-
enhancement Feature Request
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
haskell-distributed/distributed-process#476 · 2 réactions ·
-
Demonstrating the use of Cloud Haskell for a Raft implementationPeut-être à nouveau libre @LaurentRDC l’a pris il y a 482 jours, et aucune pull request n’est ouverte. Ouverteenhancement Feature Request
haskell-distributed/distributed-process#475 · 3 réactions · 1 personne assignée ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 20/100
haskell-distributed/distributed-process#473 · 4 commentaires · 1 réaction ·
Toutes les issues de haskell-distributed/distributed-process
Issues similaires
-
MorphRule, DataizeRule and ContextualizeRule silently accept unknown YAML keys, unlike rewrite `Rule`Peut-être pris @renyamamoto2026-cmyk l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
objectionary/phino#2107 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
tweag/tricorder#640 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour