On Fri, 2008-10-31 at 16:40 +0000, Gordon Sim wrote:
> Alan Conway wrote:
> > LocalQueue and SubscriptionManager both have get() functions that take a
> > timeout. The timeout defaults to 0, so the default meaning of get is "if
> > there's a message immediately available, get it, else give up."
> > 
> > I'm responsible for that default but it now strikes me as completely
> > wrong. In an async messaging system you very rarely know when a message
> > is "there" you almost always want to wait for it.  
> > 
> > TIME_INFINITE might be a more appropriate default, although there's a
> > risk of silently breaking existing code. Removing the default entirely
> > would give a compile error in existing code (which is better) and would
> > force the developer to be clear about what they want?
> > 
> > Anyone agree/disagree with changing or removing the default?
> 
> There are already two versions of those methods. One that throws an 
> error if a message doesn't show up in the specified time, the other 
> returning a boolean indicating success. The default on the former is 
> TIME_INFINITE, the default on the latter is 0 (i.e. check if the queue 
> has a message on it 'now'). Personally I find that reasonably intuitive...

OK, I'll leave well enough alone :)

Reply via email to