Another idea - register a circular buffer with the server process. When the data arrives, put it into the buffer and signal the application that there is something there.
I'm allready doing that (storing interrupts). Because you can never assume that software is as fast as hardware.

Let me explain a little further.

My driver handles up to 12 modules. So I need to store this for each module. This isn't a problem. When a program install's a signal handler it's pid is stored, and some information about which which interrupt(s) it wants to receive. The driver then handles any incoming interrupts from the modules and sends them to the programs if they wish to receive it. The program receives a signal, but doesn't know anything about this signal, except the signal number. So the program doesn't know what module it came from or what interrupt was given. So if the program would have to poll the driver, the driver would have to check all boards, and find the pid of the program. The program could have more than 1 signal handler installed, and the driver would find 2 (or more) cases of the same board and signal handler combinations. If another interrupt would have been received in the meanwhile (which is possible), there is no way to tell which is the right one.

I hope you understand what I mean. I really think I need to send data with that signal to know what happened.

Thanx,

Dennis