Multithreaded drivers (agin)
Oscar Hellström
oscar-erl@REDACTED
Tue Jul 25 15:22:29 CEST 2006
Hi,
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
non-blocked one.
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.
Regards
--
Oscar Hellström, oscar@REDACTED
web: personal.oscarh.net
jid: oscar@REDACTED
More information about the erlang-questions
mailing list