Mimo że otrzymałeś prawdopodobnie całkiem sensowną odpowiedź, istnieje inne podejście - nie musisz używać pętli asyncore jako takiej. Po prostu wywołaj asyncore.loop z zerowym czasem oczekiwania i liczbą 1, która zatrzyma iterację (i tym samym sprawi, że nazwa funkcji będzie całkowicie myląca) i odpytuje gniazda tylko raz. Dzwoń tak często, jak potrzebujesz.
Nie wiem nic na temat asynchronicznego wsparcia glib, ale jeśli wymaga on wątków, możesz uzyskać lepszą wydajność, używając asyncore w ten sposób, ponieważ będzie używał select lub poll i nie będzie musiał spawnować dodatkowych wątków.
Po co używać asyncore, gdy masz glib? glib wydaje się znacznie bardziej zdolny ... –