Und hier die Auflösung des Rätsels warum "Service_task" manchmal in sigsuspend() hängt und dann wieder man in der mutex/futex - abundzu wird ein Signalhandler aufgerufen während der thread an der mutex/futex wartet, und der signal-Handler wartet mittels sigsuspend auf SIGRTMIN1-SIGRTMIN8. # strace -p 1075 Process 1075 attached rt_sigsuspend(~[RTMIN RT_1 RT_8] # gdb strack trace: 0xb6cfc5f8 in do_sigsuspend (set=0xb51be72c) at ../sysdeps/unix/sysv/linux/sigsuspend.c:32 32 ../sysdeps/unix/sysv/linux/sigsuspend.c: No such file or directory. (gdb) where #0 0xb6cfc5f8 in do_sigsuspend (set=0xb51be72c) at ../sysdeps/unix/sysv/linux/sigsuspend.c:32 #1 __GI___sigsuspend (set=0xb51be72c) at ../sysdeps/unix/sysv/linux/sigsuspend.c:46 #2 0x00160a40 in SysTaskWaitForResume () #3 0x0016058c in task_signalhandler () #4 #5 0xb6d954f0 in syscall () from /lib/libc.so.6 #6 0xb5fa27d4 in QMutexPrivate::wait(int) () from /usr/lib/libQtCore.so.4 #7 0xb5f9eb9c in QMutex::lockInternal() () from /usr/lib/libQtCore.so.4 #8 0xb6ac5b48 in data_in(char*, int) () from /usr/lib/libvt.so #9 0xb6a8dbec in codesys_send () from /usr/lib/libvt.so #10 0xb6b567a0 in IsoVtLib_NumericValue () from /usr/lib/libIsobus.so #11 0xb6b55574 in isocmd_numericvalue () from /usr/lib/libIsobus.so #12 0xb52799a0 in ?? () #13 0xb52799a0 in ?? () Backtrace stopped: previous frame identical to this frame (corrupt stack?) (gdb) quit A debugging session is active.