Messages in this thread | | | Date | Wed, 28 Sep 2005 15:51:48 -0700 | From | Ray Lee <> | Subject | Re: Registering for multiple SIGIO within a process |
| |
On 9/28/05, Bhattacharjee, Satadal <Satadal.Bhattacharjee@engenio.com> wrote: [...] > Each shared object has function within it to register with kernel to receive > SIGIO when an event is generated by the HBA. Driver received the event from > the HBA and sends SIGIO to the kernel. [...] > When driver generates a signal, the shared object which registered last, > receives the signal. The first registration never receives any signal. [...] > So can somebody suggest what is the correct mechanism to register with the > kernel for receiving multiple signals from a single process?
(Sheesh, what is it with people thinking signals are something to be used in any design after the 1970's?)
You're out of luck. Either register a sigio handler as a dispatcher in your loader (shell) process before either of the two shared objects do, and then somehow echo the signal to the correct object by hand (assuming you can determine which HBA raised the signal -- and no idea how'd you do this, actually), or fork() the main shell process into at least one other one to allow receiving of the signals separately. I'd suggest fork()ing twice, once per HBA, as that'd probably end up simpler code-wise.
Ray - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |