Hi Ross,

No sir, not using any threading yet. Because it is stuck in the while loop, the 
call BasicTaskScheduler::createNew() is not even returning.
It works in the testRTSPClient program and in my own test program, but not when 
in this COM library that is being hosted in another program.

I'll have to dig deeper to see if I can get more info.

Thanks,

From: live-devel [mailto:live-devel-boun...@ns.live555.com] On Behalf Of Ross 
Finlayson
Sent: Tuesday, August 26, 2014 5:23 PM
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] DelayQueue infinite loop

DelayQueue::synchronize appears to be stuck in that while loop. It appears 
curEntry->fDeltatTimeRemaning is always (0,0)

No, that shouldn't happen.  See below.



This is in DelayQueue.cpp at DelayQueue::synchronize
Loop starts at line 214.


DelayQueueEntry* curEntry = head();

while (timeSinceLastSync >= curEntry->fDeltaTimeRemaining) {

timeSinceLastSync -= curEntry->fDeltaTimeRemaining;

curEntry->fDeltaTimeRemaining = DELAY_ZERO;

curEntry = curEntry->fNext;

}

Note that "curEntry" is set to the next entry in the queue, before continuing 
the loop.  Also, each delay queue is set up so that the last entry in the queue 
has a delay ("fDeltaTimeRemaining") of 'eternity' (in reality, 68 years).  So 
the condition "timeSinceLastSync >= curEntry->fDeltaTimeRemaining" is never 
true for the last entry in the queue, and so the "while()" loop will always 
terminate.

So, something else must be wrong in your system.  (I hope you don't have more 
than one thread trying to use the same UsageEnvironment & TashScheduler?)

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to