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