org.eclipse.equinox.common.src.org.eclipse.core.runtime.IProgressMonitorWithBlocking Maven / Gradle / Ivy
Show all versions of com.liferay.diff.impl
/*******************************************************************************
* Copyright (c) 2003, 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM - Initial API and implementation
*******************************************************************************/
package org.eclipse.core.runtime;
/**
* An extension to the IProgressMonitor interface for monitors that want to
* support feedback when an activity is blocked due to concurrent activity in
* another thread.
*
* When a monitor that supports this extension is passed to an operation, the
* operation should call setBlocked
whenever it knows that it
* must wait for a lock that is currently held by another thread. The operation
* should continue to check for and respond to cancelation requests while
* blocked. When the operation is no longer blocked, it must call clearBlocked
* to clear the blocked state.
*
* This interface can be used without OSGi running.
*
* Clients may implement this interface.
*
* @see IProgressMonitor
* @since 3.0
*/
public interface IProgressMonitorWithBlocking extends IProgressMonitor {
/**
* Indicates that this operation is blocked by some background activity. If
* a running operation ever calls setBlocked
, it must
* eventually call clearBlocked
before the operation
* completes.
*
* If the caller is blocked by a currently executing job, this method will return
* an IJobStatus
indicating the job that is currently blocking
* the caller. If this blocking job is not known, this method will return a plain
* informational IStatus
object.
*
*
* @param reason an optional status object whose message describes the
* reason why this operation is blocked, or null
if this
* information is not available.
* @see #clearBlocked()
* @see org.eclipse.core.runtime.jobs.IJobStatus
*/
public void setBlocked(IStatus reason);
/**
* Clears the blocked state of the running operation. If a running
* operation ever calls setBlocked
, it must eventually call
* clearBlocked
before the operation completes.
*
* @see #setBlocked(IStatus)
*/
public void clearBlocked();
}