Хотя у вас есть то, что, вероятно, вполне разумный ответ, есть другой подход - вам не нужно использовать цикл асинхроров как таковой. Просто вызовите asyncore.loop с нулевым таймаутом и счетчиком 1, что останавливает его итерацию (и, таким образом, имя функции полностью вводит в заблуждение) и опроса сокетов только один раз. Назовите это так часто, как вам нужно.
Я не знаю ничего о поддержке асинхронной поддержки glib, но если она требует потоков, вы все равно можете получить лучшую производительность, используя asyncore таким образом, так как она будет использовать select или poll и не потребуется создавать дополнительные потоки.
Зачем вам использовать asyncore, когда у вас есть glib? glib кажется гораздо более способным ... –