package com.zsoft.SignalA.Transport.Longpolling;
import com.zsoft.SignalA.ConnectionBase;
public abstract class StopableStateWithCallback extends StopableState {
protected Object mCallbackLock = new Object();
//protected AjaxCallback<JSONObject> mCurrentCallback = null;
public StopableStateWithCallback(ConnectionBase connection) {
super(connection);
}
@Override
public void Stop() {
requestStop.set(true);
synchronized (mCallbackLock) {
// if(mCurrentCallback!=null)
// mCurrentCallback.abort();
}
Run();
}
@Override
public void Run()
{
if (mIsRunning.compareAndSet(false, true)) {
try
{
OnRun();
}
finally
{
//mIsRunning.set(false); Do this in the callback instead
}
}
}
}