Darren Salt wrote: > I demand that Klaus Schmidinger may or may not have written... > > >>Darren Salt wrote: >> >>>The attached patch should fix a hang (livelock) which can occur when >>>moving between editing marks. Blame Timothy Baldwin if it doesn't work - >>>he suggested it ;-) > > [snip] > > >>Under which conditions do these lockups happen? > > >>Which output device is in use (FF DVB card or some software player)? > > > It's happened here: budget card, xine-lib. Ah, as I suspected ;-) Could it be that the xine player doesn't implement cDevice::Poll() the way it is supposed to? My guess would be that in case of a still picture the xine player's Poll() function returns immediately instead of waiting for the given timeout. That would explain why everything appears to lock up. Could you please verify this? Klaus >>I don't really see what difference this sched_yield() would make, so I'd >>like to understand this before simply throwing it in... > > > Quoting from the mail which described the patch: > > | It's livelock! > > | The thread which executes cDvbPlayer::Action(void) (in dvbplayer.c) locks > | the cDvbPlayer object most of the time when an editing mark is first jumped > | to. The symptoms are cured by adding a call to sched_yield() before > | LOCK_THREAD in cDvbPlayer::Action(void).