/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. */ protected final void end() { Thread.currentThread().popInterruptAction$(wakeupRunnable); }
/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. * * @param success * pass {@code true} if the blocking operation has succeeded and * has had a noticeable effect; {@code false} otherwise. * @throws AsynchronousCloseException * if this channel is closed by another thread while this method * is executing. * @throws ClosedByInterruptException * if another thread interrupts the calling thread while this * method is executing. */ protected final void end(boolean success) throws AsynchronousCloseException { Thread.currentThread().popInterruptAction$(interruptAndCloseRunnable); if (interrupted) { interrupted = false; throw new ClosedByInterruptException(); } if (!success && closed) { throw new AsynchronousCloseException(); } }
/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. */ protected final void end() { Thread.currentThread().popInterruptAction$(wakeupRunnable); }
/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. * * @param success * pass {@code true} if the blocking operation has succeeded and * has had a noticeable effect; {@code false} otherwise. * @throws AsynchronousCloseException * if this channel is closed by another thread while this method * is executing. * @throws ClosedByInterruptException * if another thread interrupts the calling thread while this * method is executing. */ protected final void end(boolean success) throws AsynchronousCloseException { Thread.currentThread().popInterruptAction$(interruptAndCloseRunnable); if (interrupted) { interrupted = false; throw new ClosedByInterruptException(); } if (!success && closed) { throw new AsynchronousCloseException(); } }
/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. * * @param success * pass {@code true} if the blocking operation has succeeded and * has had a noticeable effect; {@code false} otherwise. * @throws AsynchronousCloseException * if this channel is closed by another thread while this method * is executing. * @throws ClosedByInterruptException * if another thread interrupts the calling thread while this * method is executing. */ protected final void end(boolean success) throws AsynchronousCloseException { Thread.currentThread().popInterruptAction$(interruptAndCloseRunnable); if (interrupted) { interrupted = false; throw new ClosedByInterruptException(); } if (!success && closed) { throw new AsynchronousCloseException(); } }
/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. * * @param success * pass {@code true} if the blocking operation has succeeded and * has had a noticeable effect; {@code false} otherwise. * @throws AsynchronousCloseException * if this channel is closed by another thread while this method * is executing. * @throws ClosedByInterruptException * if another thread interrupts the calling thread while this * method is executing. */ protected final void end(boolean success) throws AsynchronousCloseException { Thread.currentThread().popInterruptAction$(interruptAndCloseRunnable); if (interrupted) { interrupted = false; throw new ClosedByInterruptException(); } if (!success && closed) { throw new AsynchronousCloseException(); } }
/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. * * @param success * pass {@code true} if the blocking operation has succeeded and * has had a noticeable effect; {@code false} otherwise. * @throws AsynchronousCloseException * if this channel is closed by another thread while this method * is executing. * @throws ClosedByInterruptException * if another thread interrupts the calling thread while this * method is executing. */ protected final void end(boolean success) throws AsynchronousCloseException { Thread.currentThread().popInterruptAction$(interruptAndCloseRunnable); if (interrupted) { interrupted = false; throw new ClosedByInterruptException(); } if (!success && closed) { throw new AsynchronousCloseException(); } }
/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. * * @param success * pass {@code true} if the blocking operation has succeeded and * has had a noticeable effect; {@code false} otherwise. * @throws AsynchronousCloseException * if this channel is closed by another thread while this method * is executing. * @throws ClosedByInterruptException * if another thread interrupts the calling thread while this * method is executing. */ protected final void end(boolean success) throws AsynchronousCloseException { Thread.currentThread().popInterruptAction$(interruptAndCloseRunnable); if (interrupted) { interrupted = false; throw new ClosedByInterruptException(); } if (!success && closed) { throw new AsynchronousCloseException(); } }
/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. * * @param success * pass {@code true} if the blocking operation has succeeded and * has had a noticeable effect; {@code false} otherwise. * @throws AsynchronousCloseException * if this channel is closed by another thread while this method * is executing. * @throws ClosedByInterruptException * if another thread interrupts the calling thread while this * method is executing. */ protected final void end(boolean success) throws AsynchronousCloseException { Thread.currentThread().popInterruptAction$(interruptAndCloseRunnable); if (interrupted) { interrupted = false; throw new ClosedByInterruptException(); } if (!success && closed) { throw new AsynchronousCloseException(); } }
/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. */ protected final void end() { Thread.currentThread().popInterruptAction$(wakeupRunnable); }
/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. */ protected final void end() { Thread.currentThread().popInterruptAction$(wakeupRunnable); }
/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. */ protected final void end() { Thread.currentThread().popInterruptAction$(wakeupRunnable); }
/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. */ protected final void end() { Thread.currentThread().popInterruptAction$(wakeupRunnable); }
/** * Indicates the end of a code section that has been started with * {@code begin()} and that includes a potentially blocking I/O operation. */ protected final void end() { Thread.currentThread().popInterruptAction$(wakeupRunnable); }