By the doing this, the timer is not running when creating trace
instances for validation.
Also, cancel timer when trace is disposed.
Change-Id: I4269ddb1faba771c039649d92f2e1477076668c8
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/21138
Reviewed-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
IP-Clean: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tested-by: Hudson CI
private int fRequestPendingCounter = 0;
- private final Timer fTimer;
+ private Timer fTimer;
private boolean fIsTimeout = false;
public TmfEventProvider() {
super();
fExecutor = new TmfRequestExecutor();
- fTimer = new Timer();
}
/**
fExecutor.init();
fSignalDepth = 0;
+
+ synchronized (fLock) {
+ fTimer = new Timer();
+ }
+
TmfProviderManager.register(fType, this);
}
public void dispose() {
TmfProviderManager.deregister(fType, this);
fExecutor.stop();
+ synchronized (fLock) {
+ if (fTimer != null) {
+ fTimer.cancel();
+ }
+ fTimer = null;
+ }
super.dispose();
}
return;
}
+ /*
+ * Dispatch request in case timer is not running.
+ */
+ if (fTimer == null) {
+ queueRequest(request);
+ return;
+ }
+
/*
* For the first background request in the request pending queue
* a timer will be started to allow other background requests to