public <C> C use(
			final C resource,
			final ThrowingConsumer<? super C, ? extends E> release
		) {
			requireNonNull(resource);
			requireNonNull(release);

			_resources.add(() -> release.accept(resource));
			return resource;
		}
Registers the given {@code resource} to the list of managed
resources.

@param resource the new resource to register
@param release the method, which <em>releases</em> the acquired
       resource
@param <C> the resource type
@return the registered resource
@throws NullPointerException if one of the given arguments is
        {@code null}
jenetics/src/main/java/io/jenetics/internal/util/Lifecycle.java