From owner-freebsd-hackers Wed Feb 14 01:51:21 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id BAA03985 for hackers-outgoing; Wed, 14 Feb 1996 01:51:21 -0800 (PST) Received: from genesis.atrad.adelaide.edu.au (genesis.atrad.adelaide.edu.au [129.127.96.120]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id BAA03965 for ; Wed, 14 Feb 1996 01:51:16 -0800 (PST) Received: from msmith@localhost by genesis.atrad.adelaide.edu.au (8.6.12/8.6.9) id UAA16773 for hackers@freebsd.org; Wed, 14 Feb 1996 20:23:28 +1030 From: Michael Smith Message-Id: <199602140953.UAA16773@genesis.atrad.adelaide.edu.au> Subject: care and feeding of selwakeup() ? To: hackers@freebsd.org Date: Wed, 14 Feb 1996 20:23:27 +1030 (CST) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-hackers@freebsd.org Precedence: bulk Hiho all you device-driver people again; yet another question to bore you senseless. (Eric, are you keeping track of all these answers? 8) I have a device select function that (appears) to be happily registering a selector on my device (only one, but that's fine). eg: if (rw == FREAD) /* selecting to read */ { if (rxbuflen(md)) /* data available to read */ { splx(s); return(1); } selrecord(p,&(md->rsel)); splx(s); return(0); } I can tracewrite and see that this is called OK, and the process selecting waits on 'select', so all appears OK there. Now my interrupt handler comes along, receives some data and wants to kick any selector into action : if (readsome) /* anything in? */ { debug("kick read selector (pid %d)",md->rsel.si_pid); selwakeup(&md->rsel); md->rsel.si_pid = 0; md->rsel.si_flags = 0; ... } But select in the reader never comes back (though the pid's match). Any magic ideas? I'm stumped... -- ]] Mike Smith, Software Engineer msmith@atrad.adelaide.edu.au [[ ]] Genesis Software genesis@atrad.adelaide.edu.au [[ ]] High-speed data acquisition and (GSM mobile) 0411-222-496 [[ ]] realtime instrument control (ph/fax) +61-8-267-3039 [[ ]] Collector of old Unix hardware. "I seek PEZ!" - The Tick [[