@NonNull
	public TimeoutableRequest timeout(@IntRange(from = 0) final long timeout) {
		if (timeoutCallback != null)
			throw new IllegalStateException("Request already started");
		this.timeout = timeout;
		return this;
	}
Sets the operation timeout.
When the timeout occurs, the request will fail with {@link FailCallback#REASON_TIMEOUT}.

@param timeout the request timeout in milliseconds, 0 to disable timeout.
@return the callback.
@throws IllegalStateException         thrown when the request has already been started.
@throws UnsupportedOperationException thrown when the timeout is not allowed for this request,
                                      as the callback from the system is required.
ble/src/main/java/no/nordicsemi/android/ble/TimeoutableRequest.java