[erlang-questions] SysV IPC

Michael Truog mjtruog@REDACTED
Wed Sep 16 21:26:42 CEST 2009


The limitation is just good to know before-hand.  A separate thread pool
makes sense, but the resulting port driver is also competing with the
Erlang VM for the OS scheduling.

Paul Mineiro wrote:
> Also, re thread pool disabling reloading,  I've run into this, but I
> don't entirely understand the limitation.  I've had good luck implementing
> my own thread pools for linked-in drivers so that I could continue to hot
> upgrade them.
>
> -- p
>
> On Wed, 16 Sep 2009, Paul Mineiro wrote:
>
>   
>> I actually think the right design would be port_control with IPC_NOWAIT,
>> and only going to a thread pool if blocking semantics are desired *and*
>> the initial call would block.  In that case the return value from
>> port_control could signal the caller to expect a (Erlang) message from the
>> port.
>>
>> -- p
>>
>> On Wed, 16 Sep 2009, Michael Truog wrote:
>>
>>     
>>> port_control doesn't do async operations.  you would need to use the
>>> async thread pool with driver_async.  You would then be limited by the
>>> size of the async thread pool, which has separate job queues for each
>>> thread (so long jobs clog it up), and the first usage of driver_async
>>> would lock the driver so it can not be unloaded (or hotswapped).
>>>
>>> Paul Mineiro wrote:
>>>       
>>>> If it hasn't been done already, one could make a linked-in driver to front
>>>> the sysv API.  One would have to use threads to avoid blocking the
>>>> emulator in some cases, but nonblocking operations could be done with a
>>>> port_control and could be reasonably zippy.
>>>>
>>>> It sounds straightforward, albeit tedious.
>>>>
>>>> -- p
>>>>
>>>> On Wed, 16 Sep 2009, Jason Rexilius wrote:
>>>>
>>>>
>>>>         
>>>>> Hello!
>>>>>
>>>>>    In my searching for SysV or POSIX IPC interfaces for erlang I found
>>>>> an earlier post to this list by "Tim Potter" who mentioned he was
>>>>> starting to work on one.
>>>>>
>>>>>    I'm wondering if anyone knows anything about it?  Tim if you're still
>>>>> on the list?
>>>>>
>>>>>    What I'm trying to do is get an interface to SysV message queues in
>>>>> erlang to coordinate with other legacy applications that are already
>>>>> using them.  Is this an easy thing and I'm just being dumb?
>>>>>
>>>>> -jason
>>>>>
>>>>>
>>>>> ________________________________________________________________
>>>>> erlang-questions mailing list. See http://www.erlang.org/faq.html
>>>>> erlang-questions (at) erlang.org
>>>>>
>>>>>
>>>>>
>>>>>           
>>>> ________________________________________________________________
>>>> erlang-questions mailing list. See http://www.erlang.org/faq.html
>>>> erlang-questions (at) erlang.org
>>>>
>>>>
>>>>
>>>>         
>>> ________________________________________________________________
>>> erlang-questions mailing list. See http://www.erlang.org/faq.html
>>> erlang-questions (at) erlang.org
>>>
>>>
>>>       
>>     
>
>
> ________________________________________________________________
> erlang-questions mailing list. See http://www.erlang.org/faq.html
> erlang-questions (at) erlang.org
>
>
>   



More information about the erlang-questions mailing list