Re: oaf time stamp problem
- From: "Troy D . Gillette" <tgillette turbolinux com>
- To: Elliot Lee <sopwith redhat com>
- Cc: gnome-components-list gnome org
- Subject: Re: oaf time stamp problem
- Date: Thu, 26 Oct 2000 16:29:45 -0700
On Thu, 26 Oct 2000, Elliot Lee wrote:
> On Wed, 25 Oct 2000, Troy D . Gillette wrote:
>
> > I'm not sure if this is the right place to post oaf problems, but...
> >
> > impl_OAF_ObjectDirectory_get_active_servers inside oafd/od-corba.c uses
> > time stamps to decide whether to check active servers (specifically,
> > only_if_newer and servant->time_active_changed). However, since these are
> > only set to the nearest second, they are usually equal. At least in my test
> > case with only one server running. This causes any "_active" queries to fail
> > randomly. Changing the test from < to <= seems to fix the problem, but I'm
> > not sure how safe that is.
>
> "<=" == bad idea - that will effectively cause it to reget the OD contents
> every time, I think.
>
> Can you give more details on your test case? Unless you are doing
> rapidfire activate-then-query, there shouldn't be problems.
>
> Theoretically it shouldn't be too hard to change things to use a 'struct
> timeval', though, and that seems like it needs to be done whether or not
> there are other problems indicated by your answer to the above question.
> Patches welcome. :)
OK, I've pinned it down, but am not sure on one point.
The problem occurs because of the oaf_naming_service. When I call
oaf_init() and then oaf_activate(), the oaf child variable gets time stamped
and the oaf_naming_service gets added as an active server.
This is fine, except that it is rapidly followed by my own
oaf_active_server_register() call. Which usually happens within the same
second, and therefore DOESN'T get added to the child's active_servers list.
So any calls to check if that server is active will fail until another server
gets registered, causing the list to get updated again.
My question is... What starts oaf_naming_service? I can't find a reference
to oaf_name_service_get() or the CosNaming moniker in the source.
Troy D. Gillette - Principal Software Developer - TurboLinux, Inc.
_____________________________________.oOo.____________________________________
Dawn, n.:
The time when men of reason go to bed.
-- Ambrose Bierce, "The Devil's Dictionary"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]