feat(sidecar): Phase B-3 — SidecarPool consolida sidecars en un runtime
Antes: cada spawn(card) creaba un thread + tokio runtime propio.
Para módulos con muchas sesiones (nouser daemon con 50+ Mónadas)
eso es 50 threads + 50 runtimes. Ahora: un thread + un runtime
tokio current_thread que hostea N tasks de sidecar.
API nueva (aditiva, no rompe spawn/spawn_with_handle):
let pool = SidecarPool::new()?;
pool.spawn(card1);
pool.spawn(card2);
pool.spawn_conscious(card_with_wit, wit);
pool.spawn_with_config(custom_config);
// pool drop = todas las sesiones cierran.
run_client se hace pública para que el pool pueda enqueuar tasks
externos al runtime con handle.spawn(run_client(config)).
nouser daemon migrado al pool. Verificación con ps -L:
$ ps -L -p $(pidof nouser)
LWP CMD
28817 nouser # main thread
28819 brahman-sidecar # pool thread (todas las sesiones)
Antes serían 6+ LWP (1 main + N sesiones). Ahora 2 fijos sin
importar cuántas Mónadas se publiquen.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,34 @@ ratio/diff ver `git show <sha>`.
|
||||
|
||||
## 2026-05-08
|
||||
|
||||
### feat(sidecar): Phase B-3 — SidecarPool consolida en un runtime
|
||||
Antes: cada `spawn(card)` creaba un thread + tokio runtime propio.
|
||||
Para módulos que publican muchas sesiones (nouser daemon con 50+
|
||||
Mónadas) eso es 50 threads + 50 runtimes. Ahora: **un thread + un
|
||||
runtime tokio current_thread** que hostea N tasks de sidecar.
|
||||
|
||||
API nueva (aditiva, no rompe `spawn`/`spawn_with_handle`):
|
||||
|
||||
let pool = SidecarPool::new()?;
|
||||
pool.spawn(card1);
|
||||
pool.spawn(card2);
|
||||
pool.spawn_conscious(card_wit, wit);
|
||||
pool.spawn_with_config(SidecarConfig::new(c).with_wit(w));
|
||||
// pool drop = todas las sesiones cierran.
|
||||
|
||||
`run_client` se hace pública para que el pool pueda enqueuar tasks
|
||||
externos al runtime con `handle.spawn(run_client(config))`.
|
||||
|
||||
`nouser daemon` migrado al pool. Verificación con `ps -L`:
|
||||
|
||||
$ ps -L -p $(pidof nouser)
|
||||
LWP CMD
|
||||
28817 nouser # main thread
|
||||
28819 brahman-sidecar # pool thread (todas las sesiones)
|
||||
|
||||
Antes serían 6+ LWP (1 main + N sesiones); ahora 2 fijos sin importar
|
||||
cuántas Mónadas se publiquen.
|
||||
|
||||
### feat: Crossreferencia — Card.references como grafo del fractal
|
||||
Las Cards ahora declaran sus relaciones con otras Cards. El Engine
|
||||
posee Mónadas; las Mónadas declaran que son poseídas por el Engine.
|
||||
|
||||
Reference in New Issue
Block a user