code: public void objectTerminated(Object object, Exception e)
  	{
  		// Allows to unblock all terminating threads
  		synchronized (terminatedLock)
  		{
  			if (terminated)
  			{
  				return;
  			}
  			terminated = true;
  		}
  
  		engine.removeTerminationListener(this);
  		if (streamManager != null)
  		{
  			streamManager.removeTerminationListener(this);
  		}
  		if (notificationManager != null)
  		{
  			notificationManager.removeTerminationListener(this);
  		}
  
  		// Request terminate
  		requestTerminateImpl(object);
  
  		try
  		{
  			waitTerminatedImpl(object);
  		} catch (InterruptedException ex)
  		{
  			// OK, interrrputed
  		}
  		fireObjectTerminated(e);
  	}
docs: IDbgpTerminationListener