/** * */ void stop() { U.cancel(workers); U.join(workers, log); top = null; }
/** {@inheritDoc} */ @Override protected void onKernalStop0(boolean cancel) { U.cancel(cleanupWorker); U.join(cleanupWorker, log); }
/** * Waits for all workers to finish. * * @param cancel Flag to indicate whether workers should be cancelled * before waiting for them to finish. */ public void join(boolean cancel) { if (cancel) U.cancel(workers); // Record current interrupted status of calling thread. boolean interrupted = Thread.interrupted(); try { U.join(workers, log); } finally { // Reset interrupted flag on calling thread. if (interrupted) Thread.currentThread().interrupt(); } } }
/** {@inheritDoc} */ @Override public void close() { closed = true; U.closeQuiet(srvSock); if (gcWorker != null) { U.cancel(gcWorker); // This method may be called from already interrupted thread. // Need to ensure cleaning on close. boolean interrupted = Thread.interrupted(); try { U.join(gcWorker); } catch (GridInterruptedException e) { U.warn(log, "Interrupted when stopping GC worker.", e); } finally { if (interrupted) Thread.currentThread().interrupt(); } } }
/** * Logs out latest version notification if such was received and available. * * @param log Logger. */ void reportStatus(GridLogger log) { assert log != null; log = log.getLogger(getClass()); // Don't join it to avoid any delays on update checker. // Checker thread will eventually exit. U.cancel(checker); String latestVer = this.latestVer; if (latestVer != null) if (latestVer.equals(ver)) { if (!reportOnlyNew) throttle(log, false, "Your version is up to date."); } else throttle(log, true, "New version is available at " + GridKernal.SITE + ": " + latestVer); else if (!reportOnlyNew) throttle(log, false, "Update status is not available."); }
/** {@inheritDoc} */ @Override public void stop(boolean cancel) throws GridException { // Stop receiving notifications. getSpi().setListener(null); // Stop segment check worker. U.cancel(segChkWrk); U.join(segChkWrk, log); // Stop discovery worker. U.cancel(discoWrk); U.join(discoWrk, log); // Stop metrics updater. U.cancel(metricsUpdater); U.join(metricsUpdater, log); // Stop SPI itself. stopSpi(); if (log.isDebugEnabled()) log.debug(stopInfo()); }
/** {@inheritDoc} */ @Override public void stop() { U.cancel(checkPntWorker); U.join(checkPntWorker, log); for (LogFile f : files) { f.stopReads(); try { f.stopWrites(); } catch (GridException e) { U.error(log, "Failed to stop file operations: " + f, e); } } }
/** * */ void stop() { U.cancel(exchWorker); U.cancel(dmdWorkers); if (log.isDebugEnabled()) log.debug("Before joining on exchange worker: " + exchWorker); U.join(exchWorker, log); if (log.isDebugEnabled()) log.debug("Before joining on demand workers: " + dmdWorkers); U.join(dmdWorkers, log); if (log.isDebugEnabled()) log.debug("After joining on demand workers: " + dmdWorkers); ResendTimeoutObject resendTimeoutObj = pendingResend.getAndSet(null); if (resendTimeoutObj != null) cctx.time().removeTimeoutObject(resendTimeoutObj); top = null; lastExchangeFut.set(null); lastTimeoutObj.set(null); }
/** * Stops all threads and releases all resources. */ public void stop() { if (!closed) { closed = true; // Make sure to entirely stop acceptor if any. U.interrupt(acceptThread); U.join(acceptThread, log); U.cancel(clientWorkers); U.join(clientWorkers, log); filterChain.stop(); } }