[erlang-questions] Does port driver block scheduler threads?

Zhemzhitsky Sergey <>
Tue Jul 3 13:20:23 CEST 2012


Hi erlangers,

Recently we have developed port (linked-in) driver and faced with some performance issues.

The port uses ERL_DRV_FLAG_USE_PORT_LOCKING locking mode, so as we understand calls to different port instances should have not blocked each other.
SMP count is greater than 1.

So the first question is:
Is it possible to have multiple port instances executing time-consuming operation in parallel, i.e. at the same time?

We expected port instances do not influence on each other. However, all the calls are blocked but the first one. So the scheduler thread seems to be blocked during the port instance invocation.
Is driver_async function required for the issues like above?
Is it possible to unblock the scheduler thread before erlang:port_call completes?

Best Regards,
Sergey


_______________________________________________________

The information contained in this message may be privileged and conf idential and protected from disclosure. If you are not the original intended recipient, you are hereby notified that any review, retransmission, dissemination, or other use of, or taking of any action in reliance upon, this information is prohibited. If you have received this communication in error, please notify the sender immediately by replying to this message and delete it from your computer. Thank you for your cooperation. Troika Dialog, Russia. 
If you need assistance please contact our Contact Center  (+7495) 258 0500 or go to www.troika.ru/eng/Contacts/system.wbp  

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120703/b8522531/attachment.html>


More information about the erlang-questions mailing list