* Doug White <[EMAIL PROTECTED]> [020520 15:01] wrote: > On Mon, 20 May 2002, Zhihui Zhang wrote: > > > > > When we reboot a machine, it seems to me that the kernel sends signal 15 > > to daemons and wait 60 seconds for them to finish. In my program, I use > > kthread_create() to create a daemon, how to make sure that my daemon > > finishes all its job before reboot can proceed? Do I need to let the > > daemon catch the signals? I tried kill -9 (or -15) pid, the daemon does > > not seem to respond. > > I don't think kthreads can take signals (?) > > Look at the code for the other kthreads that put out the 'waiting for XXX > to finish' messages during the shutdown sequence.
They can take signals, you just need to have the upper event loop check for signal return errors and pass PCATCH flag in with the priority for the msleep/tsleep arguments, or use cv_wait_sig(), make sure to pay attention to the return value from these functions because once a signal is pending you may loop forever if you don't break out to handle the exceptional conditions because signals are level not edge. I think you can also use the CURSIG macro to check for pending signals if you don't want to yeild. -- -Alfred Perlstein [[EMAIL PROTECTED]] 'Instead of asking why a piece of software is using "1970s technology," start asking why software is ignoring 30 years of accumulated wisdom.' Tax deductible donations for FreeBSD: http://www.freebsdfoundation.org/ To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message