public static void resetOnScheduleHook(String key) {
		synchronized (onScheduleHooks) {
			onScheduleHooks.remove(key);
			if (onScheduleHooks.isEmpty()) {
				onScheduleHook = Function.identity();
			}
			else {
				Function<Runnable, Runnable> newHook = null;
				for (Function<Runnable, Runnable> function : onScheduleHooks.values()) {
					if (newHook == null) {
						newHook = function;
					}
					else {
						newHook = newHook.andThen(function);
					}
				}
				onScheduleHook = newHook;
			}
		}
	}
public static void resetOnScheduleHook(String key) {
		synchronized (onScheduleHooks) {
			onScheduleHooks.remove(key);
			if (onScheduleHooks.isEmpty()) {
				onScheduleHook = Function.identity();
			}
			else {
				Function<Runnable, Runnable> newHook = null;
				for (Function<Runnable, Runnable> function : onScheduleHooks.values()) {
					if (newHook == null) {
						newHook = function;
					}
					else {
						newHook = newHook.andThen(function);
					}
				}
				onScheduleHook = newHook;
			}
		}
	}
public static void resetOnScheduleHook ( String key ) { synchronized ( onScheduleHooks ) { onScheduleHooks . remove ( key ) ; if ( onScheduleHooks . isEmpty ( ) ) { onScheduleHook = Function . identity ( ) ; } else { Function < Runnable , Runnable > newHook = null ; for ( Function < Runnable , Runnable > function : onScheduleHooks . values ( ) ) { if ( newHook == null ) { newHook = function ; } else { newHook = newHook . andThen ( function ) ; } } onScheduleHook = newHook ; } } }
Reset a specific onScheduleHook {@link Function sub-hook} if it has been set up
via {@link #onScheduleHook(String, Function)}.

@param key the key for onScheduleHook sub-hook to remove
@see #onScheduleHook(String, Function)
@see #resetOnScheduleHooks()
Reset a specific onScheduleHook { @link Function sub - hook } if it has been set up via { @link #onScheduleHook ( String Function ) } .