Waiting on file descriptor/socket *AND* thread messages
Steven Schveighoffer
schveiguy at gmail.com
Mon Jun 29 12:25:16 UTC 2020
On 6/29/20 5:14 AM, ichneumwn wrote:
> Dear all,
>
> Is there some facility in D for a single statement/function call that
> will wait on both file descriptors, like Socket.select(), and will also
> wake up when there is something to be receive()'d?
Not in the standard library. Such things require an event framework,
because there is no OS-agnostic provided mechanism to sleep on all these
things at once.
I recommend looking through code.dlang.org. I found these:
https://code.dlang.org/packages/libasync
https://code.dlang.org/packages/eventcore
https://code.dlang.org/packages/mecca (this seems very underdocumented,
but I know it provides such a system)
>
> One solution would be to have my main thread use receive() and a helper
> thread that does the select() call and sends a message to the main
> thread. That seems a bit of overkill however.
I don't know the correct way to solve this, I've done it in the past by
creating a file descriptor that can be waited on to wake up the target
along with any other file descriptors being waited on.
-Steve
More information about the Digitalmars-d-learn
mailing list