This is my problem: the forked processes of cyrus imapd's master write their status messages to a pipe which in turn is read by the master. The childs terminate after a timeout (60 seconds). What happens is that the child terminates before the messages are processed by the master process. The master process gets the status messages later and this leads to an unusable service. Thats what i want to solve. My Q is: why isnt the master scheduled for execution immediatly after the queue has data? It uses a normal select() and the fds are correct set up. The server had a high load of >5 (1Min) at that time. The kernel is either a 2.6.9 or a 2.6.15.2. I have straces (unfortunalty without timestamps) and logs available. any ideas are appreciated. Thanks