[Mono-list] Garbage-collecting a remoting singleton object in a service?

"Andrés G. Aragoneses [ knocte ] "Andrés G. Aragoneses [ knocte ]
Mon Sep 4 06:38:06 EDT 2006


Thanks for your answer Robert!

> That's not the real reason why they are GCed. If an object
> is casted to one of its interface it still remains the
> same object.
> 
> If the client is implementing IClient while subclassing
> MarshalByRefObject, the usual remoting lifetime constraints
> will take effect.
> 
> You can control the lifetime (on the client) by overriding
> InitializeLifetimeServices.

I see. But I am using also a null value for the return value of 
InitializeLifetimeService in the client, because I want the client to 
keep connected until normal program termination (or CTRL-C hitted by the 
user at the client machine), which will actually garbage collect the 
whole process.

Snippet:

class Client : MarshalByRefObject, IClient
{
   public override object InitializeLifetimeService()
   {
     return null;
   }

   /* methods of IClient interface... */
}


> The IClient proxy (on the server) is subject to be GCed after
> it's removed from the hClients dictionary

That's the thing I was unsure about, thanks for pointing out!

Regards,

	Andrés	[ knocte ]

-- 



More information about the Mono-list mailing list