The C bindings emulate nonblocking API calls using async_exec; the postgres-pr driver does not. This is used for multithreaded Active Record by setting AR::Base.allow_concurrency = true. The pessimistic locking tests would deadlock without it.
So, I'm not entirely clear on this... From what you've written and
the source code, it sounds like in a production app (Mongrel), we
would be crazy to have allow_concurrency on false. Does turning it
off kill performance entirely, assuming we are using the C process
bindings?