Search in sources :

Example 1 with Unreferenced

use of java.rmi.server.Unreferenced in project jdk8u_jdk by JetBrains.

the class SequenceEntry method refSetRemove.

/**
     * Remove endpoint from the reference set.
     */
private synchronized void refSetRemove(VMID vmid) {
    // remove notification request
    DGCImpl.getDGCImpl().unregisterTarget(vmid, this);
    if (refSet.removeElement(vmid) && refSet.isEmpty()) {
        // remove object from table.
        if (DGCImpl.dgcLog.isLoggable(Log.VERBOSE)) {
            DGCImpl.dgcLog.log(Log.VERBOSE, "reference set is empty: target = " + this);
        }
        /*
             * If the remote object implements the Unreferenced interface,
             * invoke its unreferenced callback in a separate thread.
             */
        Remote obj = getImpl();
        if (obj instanceof Unreferenced) {
            final Unreferenced unrefObj = (Unreferenced) obj;
            final Thread t = java.security.AccessController.doPrivileged(new NewThreadAction(new Runnable() {

                public void run() {
                    unrefObj.unreferenced();
                }
            }, "Unreferenced-" + nextThreadNum++, false, true));
            // REMIND: access to nextThreadNum not synchronized; you care?
            /*
                 * We must manually set the context class loader appropriately
                 * for threads that may invoke user code (see bugid 4171278).
                 */
            java.security.AccessController.doPrivileged(new java.security.PrivilegedAction<Void>() {

                public Void run() {
                    t.setContextClassLoader(ccl);
                    return null;
                }
            });
            t.start();
        }
        unpinImpl();
    }
}
Also used : Remote(java.rmi.Remote) Unreferenced(java.rmi.server.Unreferenced) NewThreadAction(sun.rmi.runtime.NewThreadAction)

Aggregations

Remote (java.rmi.Remote)1 Unreferenced (java.rmi.server.Unreferenced)1 NewThreadAction (sun.rmi.runtime.NewThreadAction)1