Multithreaded drivers (agin)
Tue Jul 25 15:22:29 CEST 2006
When using the driver_async (erl_driver(1)) it does not seem to use
different threads even though different keys are used.
Furthermore, it seems to choose a already blocked thread instead of a
As an example.
One entity (#1) assign itself a resource, and starts using it. Another
entity (#2) asks for the same resource, using the same, or another,
thread. This thread is then blocked. Then the first entity (#1) tries to
release the resource, but it happens to be queued in the blocked thread.
By not passing it a key, "the threads from the pool are used in a
round-robin way", but even with this behaviour, it seems one of the
requests are being queued in a already busy thread.
More information about the erlang-questions