How can I put a process to sleep, and Wake it when something is written to its FIFO?
Hello everyone:
First post asking for help here. I will try to be as descriptive as I can.
I am working on a system with many processes that communicate to each other through FIFOs transferring data. Among them, there is a DBManager process that gets all the input coming from the other processes.
I need to make the system more responsive, by working on that DBManager.
This DBManager process is getting all the input information by regularly polling the FIFOs. The problem, is that I cannot just reduce the polling time to increase the responsiveness since it's running on an embedded system, and I would be wasting too much CPU time.
Is there a way that I could put that process to sleep, and somehow awake it when something is put on the FIFO without having to switch to a RTLinux kernel? I have been trying to find information about that all over the internet, and on these forums, but I can't seem to be able to find a mechanism that would help me in that.
Thanks in advance for all of your help.
Regards,
Chatunman.
|