Print this page
8634 epoll fails to wake on certain edge-triggered conditions
8635 epoll should not emit POLLNVAL
8636 recursive epoll should emit EPOLLRDNORM
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Reviewed by: Igor Kozhukhov <igor@dilos.org>

*** 20,29 **** --- 20,30 ---- */ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * Copyright 2017 Joyent, Inc. */ /* * srn Provide apm-like interfaces to Xorg
*** 261,274 **** clone = SRN_MINOR_TO_CLONE(getminor(dev)); if ((events & (POLLIN | POLLRDNORM)) && srn_poll_cnt[clone]) { *reventsp |= (POLLIN | POLLRDNORM); } else { *reventsp = 0; ! if (!anyyet) { *phpp = &srn_pollhead[clone]; } - } return (0); } /*ARGSUSED*/ static int --- 262,276 ---- clone = SRN_MINOR_TO_CLONE(getminor(dev)); if ((events & (POLLIN | POLLRDNORM)) && srn_poll_cnt[clone]) { *reventsp |= (POLLIN | POLLRDNORM); } else { *reventsp = 0; ! } ! ! if ((*reventsp == 0 && !anyyet) || (events & POLLET)) { *phpp = &srn_pollhead[clone]; } return (0); } /*ARGSUSED*/ static int