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>

*** 19,29 **** * CDDL HEADER END */ /* * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2012 Nexenta Systems, Inc. All rights reserved. ! * Copyright (c) 2015, Joyent, Inc. */ /* * This file implements the interfaces that the /dev/random * driver uses for read(2), write(2) and poll(2) on /dev/random or --- 19,29 ---- * CDDL HEADER END */ /* * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2012 Nexenta Systems, Inc. All rights reserved. ! * Copyright 2017 Joyent, Inc. */ /* * This file implements the interfaces that the /dev/random * driver uses for read(2), write(2) and poll(2) on /dev/random or
*** 920,930 **** */ if (rnbyte_cnt >= MINEXTRACTBYTES) *reventsp |= (events & (POLLIN | POLLRDNORM)); } ! if (*reventsp == 0 && !anyyet) *phpp = &rnd_pollhead; } /*ARGSUSED*/ static void --- 920,930 ---- */ if (rnbyte_cnt >= MINEXTRACTBYTES) *reventsp |= (events & (POLLIN | POLLRDNORM)); } ! if ((*reventsp == 0 && !anyyet) || (events & POLLET)) *phpp = &rnd_pollhead; } /*ARGSUSED*/ static void