Tuve un problema similar con una tecnología muy diferente: Twisted python (reactor-basado IO) y sqlAlchemy (??). Mientras buscaba una solución, encontré un proyecto sAsync que simplemente creaba un hilo separado para sqlAlchemy y luego respondía a las solicitudes.
Dado que ASIO se basa en características de bajo nivel del sistema operativo (como aio_read() o ReadFileEx() etc) y un reactor de nivel de sistema operativo (o proactor, en el caso de Windows) no creo que tenga otra oportunidad que emular la "asincronía" por medios similares.
Ejecución de un conector sincrónico en hilos no es una opción
Piense en esto: la libmysqlclient/mysqlclient.dll
está utilizando hace llamadas de socket síncronos. El planificador del sistema operativo cambiará correctamente a otro subproceso hasta que finalice la E/S, entonces, ¿cuál es la diferencia? (aparte del hecho de que no debe hacer 2k hilos para esto ...)
Editar: mysql_real_connect() admite un parámetro de socket UNIX. Supuestamente puede leerse desde el puerto del servidor mysql y escribir en ese socket UNIX solo con ASIO. Como una alterficación.
La conexión de bloqueo es un problema grave en esta implementación, pero parece que hace lo que solicité originalmente. El proyecto drizzle (https://launchpad.net/drizzle) está trabajando en un cliente asíncrono que será retrocompatible con Mysql (mencionado aquí: http://www.oddments.org/?p=20) –