RE: ref counting in Bonobo
- From: Svanberg Liss <lisss ydab se>
- To: lacage email enst fr, gnome-components-list gnome org
- Subject: RE: ref counting in Bonobo
- Date: Thu, 30 Sep 1999 00:20:28 +0200
> If i am not wrong, i think that this feature is also implemented as the
> gnome_object_ping function (once more, not sure about its name but there
> was one around some time ago. It should be still there)
> Basically, this function did a ref/unref to test whether the Object was
> still there. However, there was a major pb with this: Objects which had
> never been referenced before or something in the kind. This was some
> VERY difficult pb (at least, it seemed so to me): Eliot talked about
> some socket stuff... Perhaps this has been adressed since then.
> I refer you to the list archives (my mail folder underwent some big
> surgery recently)
If I understood gnome_object_ping corrctly, it was an exteriour process that
did the ping.
No exteriour process can hope to catch all CORBA objects, because they have
to be registred first.
The "Ping-ticket-interface" ( as suggested by Walt Pohl
[pohl@math.washington.edu] ) is different, becuse it's the server itself
that pings.
( And all clients are per definition registred at their server )
The "ping-ticket" don't care about objects that has never been added or
referenced, because such objects are uninportnt to deal with if their
process dies.
( They will die when their process dies )
The "server" objects are not important either, because they have "clients"
that will try to access them, and then the "clients" will notice that the
"server" is dead.
( If the "server" doesn't have any "clients", see abowe )
The only problem left is the "clients" that are connected to a "server", and
one of the "clients" dies.
Since the "server" doesn't reference it's "clients", the "server" will never
realize that one of them is dead.
( Unless we have a two-way communication as with containers / containes )
This is where the ping comes in.
If all "clients" are required a "ping interface" to gain a object reference
from the "server", then the "server" itself can check the clients.
// Liss
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]