| /* |
| * Copyright (C) 2010, Google Inc. and others |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Distribution License v. 1.0 which is available at |
| * https://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| package org.eclipse.jgit.lib; |
| |
| /** |
| * Asynchronous operation handle. |
| * |
| * Callers that start an asynchronous operation are supplied with a handle that |
| * may be used to attempt cancellation of the operation if the caller does not |
| * wish to continue. |
| */ |
| public interface AsyncOperation { |
| /** |
| * Cancels the running task. |
| * |
| * Attempts to cancel execution of this task. This attempt will fail if the |
| * task has already completed, already been cancelled, or could not be |
| * cancelled for some other reason. If successful, and this task has not |
| * started when cancel is called, this task should never run. If the task |
| * has already started, then the mayInterruptIfRunning parameter determines |
| * whether the thread executing this task should be interrupted in an |
| * attempt to stop the task. |
| * |
| * @param mayInterruptIfRunning |
| * true if the thread executing this task should be interrupted; |
| * otherwise, in-progress tasks are allowed to complete |
| * @return false if the task could not be cancelled, typically because it |
| * has already completed normally; true otherwise |
| */ |
| boolean cancel(boolean mayInterruptIfRunning); |
| |
| /** |
| * Release resources used by the operation, including cancellation. |
| */ |
| void release(); |
| } |