[Ace-users] [ace-users] RE : RE : RE : Notify in handle_signal

Chris Cleeland cleeland at ociweb.com
Tue Feb 12 10:16:40 CST 2008


On Feb 12, 2008, at 7:46 AM, ZXERASOGE002, Ext wrote:

> In my case I don't care if I miss a few notifications when the pipe is
> not empty because I have a loop over waitpid in handle_exception.  
> But in
> handle_signal I must be sure I call notify when the pipe is empty. One
> solution would be to check in handle_signal if there is something to
> read from the notification pipe (with a select for instance), and call
> notify *only* when there is nothing to read (ie the pipe is empty).  
> The
> problem is the notification_pipe is protected and not public

Don't you still have a race condition where the pipe fills between the  
time you check for empty and the time you actually try to write?  I  
realize that's pathological and fairly unlikely, but it doesn't sound  
foolproof.

As far as gaining access to the notification_pipe, it's been awhile  
since I've mucked around with reactor internals, but couldn't you  
specialize the implementation (Select_Reactor or Select_Reactor_T) and  
override notify() with your own implementation that does what you want?

---
Chris Cleeland, Principal Software Engineer
http://www.theaceorb.com AND http://www.ociweb.com




More information about the Ace-users mailing list