У меня была похожая проблема с совсем другими технологиями: Twisted python (IO на основе реактора) и sqlAlchemy (??). При поиске решения я обнаружил проект sAsync, который просто создал отдельный поток для sqlAlchemy, а затем ответил на запросы.
Учитывая, что ASIO основан на низкоуровневых функциях ОС (таких как aio_read () или ReadFileEx () и т. Д.) И реакторе уровня ОС (или proactor, в случае Windows), я не думаю, что у вас есть другой шанс эмулируя асинхронность подобными средствами.
Запуск синхронного соединителя в потоках не вариант
Подумайте об этом: libmysqlclient / mysqlclient.dll
, который вы используете, выполняет синхронные вызовы сокетов. Планировщик ОС будет корректно переключаться на другой поток, пока не завершится ввод-вывод, так в чем же разница? (кроме того факта, что вы не должны создавать 2k потоков для этого ..)
Редактировать: mysql_real_connect () поддерживает параметр сокета UNIX. Можно предположить, что вы сами читаете с порта сервера mysql и записываете в этот сокет UNIX только с использованием ASIO. Как проксификация.