# `async_loop_singleton.py` ## Scopo Questo modulo mantiene un loop asyncio globale e condiviso, eseguito su un thread dedicato. ## Flusso ```{mermaid} 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 ```{mermaid} 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.