Xref: utzoo comp.unix.xenix:3955 comp.unix.questions:10285 comp.unix.wizards:12609 Path: utzoo!attcan!uunet!atina!mrecvax!tron From: tron@mrecvax.UUCP (Carlos Mendioroz) Newsgroups: comp.unix.xenix,comp.unix.questions,comp.unix.wizards Subject: driver's sleep() not returning ? Keywords: driver sleep wakeup timeout Message-ID: <453@mrecvax.UUCP> Date: 18 Nov 88 21:24:25 GMT Reply-To: tron@mrecvax.UUCP (Carlos Mendioroz) Organization: M.R.E. y C. Bs. As. Argentina Lines: 22 Has anybody seen sleep() not returning even though wakeup() has been called ? In a litle driver that has a ioctl() interface and an interrupt service routine, I call sleep to wait for the device to complete its function and then wakeup (from xxintr()) to restart execution. Also, as I don't have a 100% probability of the device function to complete, there is a timeout() that calls another wakeup(). So far, so good. But... Sometimes, the ioctl() never returns. A ps will tell you that the corresponding process is running (no WCHAN), the device shows no activity and the process is "inmortal". (No response to any signal) By adding some debug code, I have stated that the sleep() doesn't return although wakeup() is called twice. (xxintr & xxtimeout) Any help will be apreciated! -- ---- Carlos G. Mendioroz Work: +54 (1) 313-8082 Fax: +54 (1) 311-1249 Home: +54 (1) 71-3473 ; Malabia 2659 11 B, Buenos Aires, 1425 ARGENTINA