Files
ware_house/docs/flows/async_loop_singleton_flow.md
2026-03-31 19:15:33 +02:00

999 B

async_loop_singleton.py

Scopo

Questo modulo mantiene un loop asyncio globale e condiviso, eseguito su un thread dedicato.

Flusso

flowchart TD
    A["Chiamata a get_global_loop()"] --> B{"Loop gia presente?"}
    B -- Si --> C["Ritorna loop esistente"]
    B -- No --> D["Crea Event ready"]
    D --> E["Avvia thread daemon"]
    E --> F["_run()"]
    F --> G["new_event_loop()"]
    G --> H["set_event_loop(loop)"]
    H --> I["ready.set()"]
    I --> J["loop.run_forever()"]
    J --> K["Ritorna loop al chiamante"]

Chiusura

flowchart TD
    A["stop_global_loop()"] --> B{"Loop attivo?"}
    B -- No --> C["Nessuna azione"]
    B -- Si --> D["call_soon_threadsafe(loop.stop)"]
    D --> E["join del thread"]
    E --> F["Azzera riferimenti globali"]

Note

  • E un helper minimale usato da main.py.
  • Il modulo esiste separato da gestione_aree_frame_async.py, ma concettualmente svolge lo stesso ruolo di gestione del loop condiviso.