From: Michael Kerrisk <mtk.manpages-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
To: Sam Varshavchik <mrsam-W1w4QoW4mIDgLSHwZvcCBg@public.gmane.org>
Cc: Davide Libenzi <davidel-AhlLAIvw+VEjIGhXcJzhZg@public.gmane.org>,
Michael Kerrisk
<mtk.manpages-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>,
linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: epoll(7) redux
Date: Wed, 21 May 2008 19:53:50 +0200 [thread overview]
Message-ID: <483461AE.9080305@gmail.com> (raw)
In-Reply-To: <cone.1207780987.222099.27997.500-lO+bjgoT4TKm14v+eVDVcBDJ/jce7dRH@public.gmane.org>
Sam Varshavchik wrote:
> Davide Libenzi writes:
>
>> On Wed, 9 Apr 2008, Michael Kerrisk wrote:
>>
>>> On Wed, Apr 9, 2008 at 1:07 PM, Sam Varshavchik
>>> <mrsam-W1w4QoW4mIDgLSHwZvcCBg@public.gmane.org> wrote:
>>> > Q2
>>> >
>>> > Can two epoll sets wait for the same file descriptor? If so, are
>>> events
>>> > reported to both epoll file descriptors?
>>> >
>>> > A2
>>> >
>>> > Yes, and events would be reported to both. However, it is not
>>> recommended.
>>> >
>>> > =========
>>> >
>>> > It's not clear what "not recommended" means. Furthermore, I don't
>>> think
>>> > there's anything wrong with two epoll file descriptors waiting for
>>> different
>>> > events on the same file descriptor. One's waiting for POLLIN, the
>>> other for
>>> > POLLOUT. What's wrong with that?
>>>
>>> Perhaps Davide has some thought to offer here?
>>
>> You can do it. No problem as far as epoll goes. The "recommended" bit
>> was more because it is very easy to get things wrong from an
>> application perspective POV, when doing that.
>> In the case above, first POLLOUT is "almost" always signaled, so
>> you'll receive continuous events over there. Second, if both events
>> shows up at the same time (say in two different threads) and you do
>> not take care of it, you'll end up handling the same fd, at the same
>> time, in two different threads.
>
> That's what I had in mind. One thread has the fd in its epoll fd for
> POLLIN, and handles the read aspect of it. Another thread puts the fd
> into a different epoll fd, for POLLOUT, and handles the writing aspect
> of it. It shouldn't be too difficult for both threads to correctly
> implement their corresponding semantics.
So how about I change:
A2. Yes, and events would be reported to both. However, it is
not recommended.
to:
Yes, and events would be reported to both. However, careful programming
may be needed to do this correctly.
?
Cheers,
Michael
--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Found a bug? http://www.kernel.org/doc/man-pages/reporting_bugs.html
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2008-05-21 17:53 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-09 11:07 epoll(7) redux Sam Varshavchik
[not found] ` <cone.1207739243.602382.23947.500-lO+bjgoT4TKm14v+eVDVcBDJ/jce7dRH@public.gmane.org>
2008-04-09 11:15 ` Michael Kerrisk
[not found] ` <cfd18e0f0804090415m1ddb36bahce8e6b724e60da7d-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-04-09 19:15 ` Davide Libenzi
2008-04-09 22:43 ` Sam Varshavchik
[not found] ` <cone.1207780987.222099.27997.500-lO+bjgoT4TKm14v+eVDVcBDJ/jce7dRH@public.gmane.org>
2008-05-21 17:53 ` Michael Kerrisk [this message]
[not found] ` <483461AE.9080305-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2008-05-21 19:01 ` Davide Libenzi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=483461AE.9080305@gmail.com \
--to=mtk.manpages-gm/ye1e23mwn+bqq9rbeug@public.gmane.org \
--cc=davidel-AhlLAIvw+VEjIGhXcJzhZg@public.gmane.org \
--cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mrsam-W1w4QoW4mIDgLSHwZvcCBg@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.