[Ace-users] [ace-bugs] trying to fix an ACE hang

Steve Huston shuston at riverace.com
Fri Nov 30 10:19:40 CST 2007


Hi Greg,

> Thanks Steve for the answer. I understand all too well that this is
> sensitive code. 
> 
> I'll try to describe more precisely what happens:

Ah, ok, thanks for describing the whole picture. Forget all I said
about the notify pipe and ignoring things - I was thinking of
something different.

Yes, this is somewhat of a problem.

> I can think of two ways to work around the issue for me:
> 
> - stop making my "dequeuing" thread lower priority ... hopefully
this
> will prevent the ACE_WFMO_Reactor_Notify message queue from 
> filling up.

This may help. Also, I don't recall a description of your dequeueing
thread(s), but if it could avoid the need to be notified on new queue
content, this problem would go away for you.

> - increasing dramatically the size of the ACE_WFMO_Reactor_Notify
> message queue 
> 
> class ACE_Export ACE_WFMO_Reactor_Notify : public ACE_Reactor_Notify
> {
> public:
>   /// Constructor
>   ACE_WFMO_Reactor_Notify (size_t max_notifies = 1024); // make it
100
> times bigger??

Yes, that would also help, at least to some extent. You could avoid
changing ACE code (and needing to remember to propagate your local
change) by constructing your own ACE_WFMO_Reactor_Notify object and
your own ACE_WFMO_Reactor object with your super-sized notify object.

> Thanks again for the help,

You're welcome - good luck!

-Steve




More information about the Ace-users mailing list