[omniORB] changing system clock

Geoffrey Hanson hanson at fabric7.com
Wed May 17 10:44:12 BST 2006


That's great. Thanks! I'll try it out.

Are you saying that all the other callers of
get_time() do not have a problem when the system
clock is changed?

For example, if I have a client timer set to, say
30 seconds, and I change the time backwards, would
the client timer still time out after 30 seconds?

Thanks,
Geoff

---
Geoff Hanson         Fabric7 Systems
hanson at fabric7.com   1300 Crittenden Lane,       
650-210-0116              Suite 302
                     Mountain View, CA 94043


> -----Original Message-----
> From: Duncan Grisby [mailto:duncan at grisby.org]
> Sent: Wednesday, May 17, 2006 5:58 AM
> To: Geoffrey Hanson
> Cc: omniorb-list at omniorb-support.com
> Subject: Re: [omniORB] changing system clock 
> 
> 
> On Tuesday 16 May, "Geoffrey Hanson" wrote:
> 
> > We've encountered a problem where if you change the system clock
> > backwards, then all requests from a Java ORB client to a omniORB
> > server are serialized within a single thread.
> 
> [...]
> > I tracked down some code in:
> > orbcore/SocketCollection.cc::Select()
> > which seems to be the culprit.
> > 
> > When calculating a timeout value for the select() call,
> > it calls SocketSetTimeOut() to calculate the difference
> > between the current time and a pre-saved absolute
> > timestamp. It only resets the timestamp when this timeout
> > expires.
> 
> Yes. This is necessary for call timeouts specified as an absolute
> deadline, but it's not required in the SocketCollection Select. The
> simple solution is to check that the timeout in select is not longer
> than the select interval. I've checked in a fix to do that, 
> and attached
> a patch here.
> 
> Cheers,
> 
> Duncan.
> 
> 



More information about the omniORB-list mailing list