Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [linuxtools-dev] TMF: Queue full

Hi Xavier,

There is also a TmfSignalThrottler class, in tmf.core.signal, which you
can use to limit the rate at which a view/component sends signals. It
queues signals and only sends the latest one after a configurable delay
has passed with no signal being sent.

We use it for example in the histogram, if the user scrolls the
mousewheel quickly, we do not want to send signals for every single time
range the mouse wheel went through. We only send an update when the
range hasn't moved for 200 ms, iirc.

Not sure which solution is more appropriate to your use case, but this
could always help.

Cheers,
Alexandre


On 13-11-15 07:54 AM, Xavier Raynaud wrote:
> Solved with a simple
> while (PlatformUI.getWorkbench().getDisplay().readAndDispatch());
> after each signal.
>
> X
>
>
> On 11/15/2013 01:34 PM, Xavier Raynaud wrote:
>> Hi,
>>
>> I wrote some tests on top of my product, based on TMF.
>> This test generates a lot of TmfTimeSynchSignal.
>> This tests is OK on TMF-1.2 (Juno)
>>
>> However, with TMF 2.1, I obtain the following exception:
>>
>> java.lang.IllegalStateException: Queue full
>>     at java.util.AbstractQueue.add(AbstractQueue.java:98)
>>     at
>> java.util.concurrent.ArrayBlockingQueue.add(ArrayBlockingQueue.java:283)
>>     at
>> org.eclipse.linuxtools.internal.tmf.core.request.TmfRequestExecutor.execute(TmfRequestExecutor.java:156)
>>     at
>> org.eclipse.linuxtools.tmf.core.component.TmfDataProvider.queueRequest(TmfDataProvider.java:330)
>>     at
>> org.eclipse.linuxtools.tmf.core.component.TmfDataProvider.dispatchRequest(TmfDataProvider.java:305)
>>     at
>> org.eclipse.linuxtools.tmf.core.component.TmfDataProvider.fireRequest(TmfDataProvider.java:214)
>>     at
>> org.eclipse.linuxtools.tmf.core.component.TmfDataProvider.endSynch(TmfDataProvider.java:428)
>>     at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
>>     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke(Method.java:606)
>>     at
>> org.eclipse.linuxtools.tmf.core.signal.TmfSignalManager.sendSignal(TmfSignalManager.java:172)
>>     at
>> org.eclipse.linuxtools.tmf.core.signal.TmfSignalManager.sendSignal(TmfSignalManager.java:142)
>>     at
>> org.eclipse.linuxtools.tmf.core.signal.TmfSignalManager.dispatchSignal(TmfSignalManager.java:138)
>>
>>
>> Is there any hint to avoid that ? Otherwise, I will modify my test to
>> generate less TmfTimeSynchSignal.
>>
>> Xavier
>
> _______________________________________________
> linuxtools-dev mailing list
> linuxtools-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/linuxtools-dev



Back to the top