RE: ref counting in Bonobo







> 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


--
        FAQ: Frequently-Asked Questions at http://www.gnome.org/gnomefaq
         To unsubscribe: mail gnome-components-list-request@gnome.org with
                       "unsubscribe" as the Subject.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]