Hi, please have a look at the backtraces of the following threads: VDR's main thread: > (gdb) bt > #0 0xffffe410 in __kernel_vsyscall () > #1 0xb7f20c1e in __lll_mutex_lock_wait () from /lib/libpthread.so.0 > #2 0xb7f1ca58 in _L_mutex_lock_86 () from /lib/libpthread.so.0 > #3 0xb7f1c47d in __pthread_mutex_lock (mutex=0xa44ceec) at pthread_mutex_lock.c:81 > #4 0x0814e111 in cMutex::Lock (this=0xa44ceec) at thread.c:191 > #5 0x080c0656 in cThread::Lock (this=0xa44cedc) at thread.h:91 > #6 0x0814e14a in cThreadLock::Lock (this=0xbfbeea90, Thread=0xa44cedc) at thread.c:392 > #7 0x0814e18e in cThreadLock (this=0xbfbeea90, Thread=0xa44cedc) at thread.c:379 > #8 0xb7a9e6d4 in cDvdPlayer::SetAudioTrack (this=0xa44ced0, Type=ttDolby, TrackId=0xa3d1a62) at player-dvd.c:2536 > #9 0x080bb367 in cDevice::SetCurrentAudioTrack (this=0xa3d11a0, Type=ttDolby) at device.c:1058 > #10 0x080e88d9 in cDisplayTracks::ProcessKey (this=0x88021d8, Key=kAudio) at menu.c:3595 > #11 0x080e3773 in cDisplayTracks::Process (Key=kAudio) at menu.c:3545 > #12 0x0815dec5 in main (argc=16, argv=0xbfbeef34) at vdr.c:1035 vdr-dvd's DvdPlayer thread: > (gdb) bt > #0 0x08159ef8 in Watchdog (signum=14) at vdr.c:164 > #1 <signal handler called> > #2 0xffffe40e in __kernel_vsyscall () > #3 0xb7f20c1e in __lll_mutex_lock_wait () from /lib/libpthread.so.0 > #4 0xb7f1ca58 in _L_mutex_lock_86 () from /lib/libpthread.so.0 > #5 0xb7f1c47d in __pthread_mutex_lock (mutex=0xa3d224c) at pthread_mutex_lock.c:81 > #6 0x0814e111 in cMutex::Lock (this=0xa3d224c) at thread.c:191 > #7 0x0814e1e2 in cMutexLock::Lock (this=0xb18f61a0, Mutex=0xa3d224c) at thread.c:366 > #8 0x0814e226 in cMutexLock (this=0xb18f61a0, Mutex=0xa3d224c) at thread.c:353 > #9 0x080bf264 in cDevice::PlayPesPacket (this=0xa3d11a0, Data=0xafd00690 "", Length=2034, VideoOnly=false) at device.c:1274 > #10 0x080be564 in cDevice::PlayPes (this=0xa3d11a0, Data=0xafd00690 "", Length=2034, VideoOnly=false) at device.c:1410 > #11 0x081141f3 in cPlayer::PlayPes (this=0xa44ced0, Data=0xafd00690 "", Length=2034, VideoOnly=false) at player.c:29 > #12 0xb7a9fdf1 in cDvdPlayer::Action (this=0xa44ced0) at player-dvd.c:730 > #13 0x0814de6e in cThread::StartThread (Thread=0xa44cedc) at thread.c:255 > #14 0xb7f1a192 in start_thread (arg=0xb18f6b90) at pthread_create.c:296 > #15 0xb7cd902e in clone () from /lib/libc.so.6 In frame #9 of VDR's main thread, mutexCurrentAudioTrack get's locked, then in frame #8, cDvbPlayer's thread mutex is to be aquired (LOCK_THREAD). In frame #12 vdr-dvd's DvdPlayer thread locked it's mutex (LOCK_THREAD), then in frame #9, mutexCurrentAudioTrack is to be aquired. As both threads lock the same mutexes in opposite order a deadlock occurs. As I'm not used to vdr-dvd development, I would be glad if someone could provide a fix for this issue. Bye. -- Dipl.-Inform. (FH) Reinhard Nissl mailto:rnissl@xxxxxx _______________________________________________ vdr mailing list vdr@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr