24 */
25 package sun.rmi.transport;
26
27 import java.lang.ref.PhantomReference;
28 import java.lang.ref.ReferenceQueue;
29 import java.net.SocketPermission;
30 import java.security.AccessController;
31 import java.security.PrivilegedAction;
32 import java.util.HashMap;
33 import java.util.HashSet;
34 import java.util.Iterator;
35 import java.util.List;
36 import java.util.Map;
37 import java.util.Set;
38 import java.rmi.ConnectException;
39 import java.rmi.RemoteException;
40 import java.rmi.dgc.DGC;
41 import java.rmi.dgc.Lease;
42 import java.rmi.dgc.VMID;
43 import java.rmi.server.ObjID;
44 import sun.misc.GC;
45 import sun.rmi.runtime.NewThreadAction;
46 import sun.rmi.server.UnicastRef;
47 import sun.rmi.server.Util;
48
49 import java.security.AccessControlContext;
50 import java.security.Permissions;
51 import java.security.ProtectionDomain;
52
53 /**
54 * DGCClient implements the client-side of the RMI distributed garbage
55 * collection system.
56 *
57 * The external interface to DGCClient is the "registerRefs" method.
58 * When a LiveRef to a remote object enters the VM, it needs to be
59 * registered with the DGCClient to participate in distributed garbage
60 * collection.
61 *
62 * When the first LiveRef to a particular remote object is registered,
63 * a "dirty" call is made to the server-side distributed garbage
64 * collector for the remote object, which returns a lease guaranteeing
|
24 */
25 package sun.rmi.transport;
26
27 import java.lang.ref.PhantomReference;
28 import java.lang.ref.ReferenceQueue;
29 import java.net.SocketPermission;
30 import java.security.AccessController;
31 import java.security.PrivilegedAction;
32 import java.util.HashMap;
33 import java.util.HashSet;
34 import java.util.Iterator;
35 import java.util.List;
36 import java.util.Map;
37 import java.util.Set;
38 import java.rmi.ConnectException;
39 import java.rmi.RemoteException;
40 import java.rmi.dgc.DGC;
41 import java.rmi.dgc.Lease;
42 import java.rmi.dgc.VMID;
43 import java.rmi.server.ObjID;
44 import sun.rmi.runtime.NewThreadAction;
45 import sun.rmi.server.UnicastRef;
46 import sun.rmi.server.Util;
47
48 import java.security.AccessControlContext;
49 import java.security.Permissions;
50 import java.security.ProtectionDomain;
51
52 /**
53 * DGCClient implements the client-side of the RMI distributed garbage
54 * collection system.
55 *
56 * The external interface to DGCClient is the "registerRefs" method.
57 * When a LiveRef to a remote object enters the VM, it needs to be
58 * registered with the DGCClient to participate in distributed garbage
59 * collection.
60 *
61 * When the first LiveRef to a particular remote object is registered,
62 * a "dirty" call is made to the server-side distributed garbage
63 * collector for the remote object, which returns a lease guaranteeing
|