[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Implementing the guix-dameon in Guile
From: |
Ludovic Courtès |
Subject: |
Re: Implementing the guix-dameon in Guile |
Date: |
Thu, 14 Sep 2023 18:36:07 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) |
Christopher Baines <mail@cbaines.net> skribis:
> I'm not very familiar with actors, but I guess that's similar to having
> a bunch of cooperating fibers which handle different things.
Yes. Specifically, actors here are a fiber together with a channel;
each actor looks like:
(let loop ((state …))
(match (get-message channel)
;; handle request and call ‘loop’
))
The actor keeps serving requests it gets on its channel.
It makes quite a difference when you start framing it this way. When I
first fiberized Cuirass years ago, I’d just use ‘spawn-fiber’ here and
there where concurrency was needed. Thinking in terms of actors makes
the code clearer, allows you to think about “concurrency units”, respect
separation of concerns, and so on. (Our Spritely comrades would explain
this much better!)
Ludo’.
- Re: Implementing the guix-dameon in Guile, (continued)
- Re: Implementing the guix-dameon in Guile, Vagrant Cascadian, 2023/09/13
- Re: Implementing the guix-dameon in Guile, Josselin Poiret, 2023/09/14
- Re: Implementing the guix-dameon in Guile, Ludovic Courtès, 2023/09/14
- Re: Implementing the guix-dameon in Guile, Mekeor Melire, 2023/09/14
- Re: Implementing the guix-dameon in Guile, Caleb Ristvedt, 2023/09/15