Decorator that wraps
func so that its execution is intercepted.
The wrapper passes
func to the interceptor for the current thread.
If there is no next interceptor, we perform an "immediate" call to
func terminates without forwarding its execution to another
func: Function to wrap.
The decorated function.