This sentence in .../ext/async/sqlite3async.c for async_cond_wait() ** It is guaranteed that no other thread will call async_cond_wait() when ** there is already a thread waiting on the condition variable.
is wrong for both Win32 and POSIX implementations. It should be left out or read ** Another thread is allowed to call async_cond_wait() while there is ** already a thread waiting on the condition variable. However, only ** one thread will be made runnable for one async_cond_signal() call ** on the condition variable. -- Christian Werner