@Override
	public void close() {
		synchronized (_lock) {
			final var closeable = Releasable.of(
				() -> { if (_thread != null) _thread.interrupt(); },
				() -> { if (_stream != null) _stream.close(); }
			);

			_proceed.set(false);
			closeable.silentRelease();
		}
		super.close();
	}
Unless already closed, issues {@code onComplete} signals to current
subscribers, and disallows later attempts to publish. Upon return, this
method does NOT guarantee that all subscribers have already completed.
jenetics/src/main/java/io/jenetics/util/StreamPublisher.java