From owner-freebsd-hackers Wed May 2 14:33:44 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from fw.wintelcom.net (ns1.wintelcom.net [209.1.153.20]) by hub.freebsd.org (Postfix) with ESMTP id 8721737B422 for ; Wed, 2 May 2001 14:33:41 -0700 (PDT) (envelope-from bright@fw.wintelcom.net) Received: (from bright@localhost) by fw.wintelcom.net (8.10.0/8.10.0) id f42LXf813533; Wed, 2 May 2001 14:33:41 -0700 (PDT) Date: Wed, 2 May 2001 14:33:41 -0700 From: Alfred Perlstein To: Dominic Marks Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: KEvent doesnt return and KEvent sample troubles Message-ID: <20010502143340.U18676@fw.wintelcom.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: ; from dominic_marks@hotmail.com on Wed, May 02, 2001 at 09:24:42PM -0000 X-all-your-base: are belong to us. Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG * Dominic Marks [010502 14:29] wrote: > I've been looking to start using the KEvent system and I've been > experimenting with it. However I've been having several problems, with my > own code as well as samples from http://www.flugsvamp.org. www.flugsvamp.org doesn't seem to resolve. > > It appears I am able to create the correct structure's and register the > events. However the event never returns and never responds to any action. > For example if I use a sample which monitors the actions on a file I can > read from, and write to the file and it shows no sign of noticing. > > I was wondering if it's simply a mistake of my own, however the failure for > the samples I've found has puzzled my further. I'm working on a 4.3-STABLE > machine using GCC version 2.95.3. > > Here is an example of code that I am using which doesn't seem to catch any > events. Its a slightly modified version of read_test.c from flugsvamp.com > which I edit so it would compile happily. > > It doesn't seem to work however. > [snip..] > kq = syscall(SYS_kqueue); > if (kq < 0) > err(1, "kqueue"); > > event[0].ident = fd; > event[0].filter = EVFILT_READ; > event[0].flags = EV_ADD | EV_ENABLE; > evp[0] = &event[0]; > n = syscall(SYS_kevent, kq, 1, evp, 0, NULL, 0); uh, what the heck? Why not just use the kqueue call directly like the manpage explains? I think you have the arguments to kevent() wrong. -- -Alfred Perlstein - [alfred@freebsd.org] Instead of asking why a piece of software is using "1970s technology," start asking why software is ignoring 30 years of accumulated wisdom. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message