socketpair
sanjayss via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Dec 30 18:31:09 PST 2015
On Thursday, 31 December 2015 at 02:26:23 UTC, Rikki Cattermole
wrote:
> On 31/12/15 3:22 PM, sanjayss wrote:
>> std.socket supports the socketpair() function, but it seems
>> like this
>> api is not really usable in any of the concurrency primitives
>> supported
>> by D. So what is the purpose of the socketpair() support?
>>
>> Basically I am trying to create two threads and am trying to
>> use
>> socketpair() to create two sockets and use them to communicate
>> between
>> the threads, but none of the socket API's allow use of shared
>> socket-pair (probably correctly so). So how else can one
>> implement a
>> foreground event loop that supports both key-presses and
>> network socket
>> events -- I was hoping to do the keyboard event in one thread
>> and use
>> the socketpair to communicate to the actual foreground event
>> loop via
>> the socketpair sockets.
>>
>> Any help on how one would code this in D is welcome.
>
> Wrong tool for the job.
> You want message passing not sockets to communicate between
> threads in this case.
>
> You're wanting the functions receive and send relating to:
> http://dlang.org/phobos/std_concurrency.html
Sure -- I understand the concurrency primitives, but what I was
trying to achieve was to have a single foreground loop that could
select on a network socket while also watching for a keypress
(and in C socketpair is one way you would achieve this using one
thread to listen for keypresses -- see
http://stackoverflow.com/questions/11461106/socketpair-in-c-unix). How do you suggest I achieve this in D?
More information about the Digitalmars-d-learn
mailing list