Date: Sun, 06 Jun 2010 20:04:38 -0400 From: "James Bailie" <jimmy@mammothcheese.ca> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/147604: kqueue timer events are not deleted when associated descriptor is closed Message-ID: <730490.56672.qm@smtp105.rog.mail.re2.yahoo.com> Resent-Message-ID: <201006070010.o570A27K087288@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 147604 >Category: kern >Synopsis: kqueue timer events are not deleted when associated descriptor is closed >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Jun 07 00:10:02 UTC 2010 >Closed-Date: >Last-Modified: >Originator: James Bailie >Release: FreeBSD 8.1-PRERELEASE amd64 >Organization: >Environment: System: FreeBSD localhost 8.1-PRERELEASE FreeBSD 8.1-PRERELEASE #20: Sat May 29 13:36:02 EDT 2010 root@localhost:/usr/obj/usr/src/sys/LOCAL amd64 >Description: Timer events set with kevent() do not get deleted when the associated descriptor is closed. If this behavior is intentional, then the manual page should be modified to reflect this. >How-To-Repeat: --- test.c begins here --- #include <sys/types.h> #include <sys/event.h> #include <sys/time.h> #include <stdlib.h> #include <stdio.h> #include <errno.h> int main( int argc, char **argv ) { struct kevent inqueue[ 1 ], outqueue[ 1 ]; int kq, inq; if (( kq = kqueue()) < 0 ) { fprintf( stderr, "kqueue(): %s", strerror( errno )); exit( 1 ); } inqueue[ 0 ].ident = 0; inqueue[ 0 ].filter = EVFILT_TIMER; inqueue[ 0 ].fflags = 0; inqueue[ 0 ].data = 1000; inqueue[ 0 ].flags = EV_ADD | EV_ENABLE; inqueue[ 0 ].udata = NULL; for( inq = 1; ; inq = 0 ) { if ( kevent( kq, inqueue, inq, outqueue, 1, NULL ) > 0 && outqueue[ 0 ].filter == EVFILT_TIMER ) { write( 1, "TIMEOUT\n", 8 ); if ( inq ) close( 0 ); } } } --- test.c ends here --- >Fix: >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?730490.56672.qm>