Tenir un verrou de base de données à travers une lecture réseau
Sharing one SQLite store across the P2P listener and discovery loop would hold a lock across a blocking peer read; separate connections plus busy_timeout avoid the stall.
Ça ne pouvait pas marcher
Une course, un ordre, une colonne pour deux choses. La forme l'excluait avant même l'exécution.
L'écouteur P2P et la boucle de découverte ont chacun obtenu leur propre connexion SQLite dédiée plutôt que de partager un store derrière un mutex avec le thread IPC. Partager aurait signifié potentiellement tenir un verrou à travers une lecture bloquante depuis un pair, ce qui est un blocage en puissance face à un réseau peu fiable. Le coût, c'est plus de descripteurs de fichiers ouverts — six au démarrage — et il a fallu un busy_timeout sur la connexion pour rendre la concurrence multi-connexions sûre.