On 10.12.22 18:30, Marko Mäkelä wrote:
... Finally, I figured out what is causing the first report: cThread::description is not protected by cThread::mutex. Possibly, most cThread data members (including cThread::active) should be protected by cThread::mutex?
Unless I'm missing something, cThread::description is never accessed while the thread is actually running, locking isn't necessary here.
... Related to this, cThread::Cancel() especially when invoked with WaitSeconds=-1 looks problematic to me, and I see that VDR is invoking pthread_detach() and never invoking pthread_join(). The second patch includes an attempt to clean this up as well.
Is there an actual problem that requires this? It has been that way for many, many years, so I'd like to see more than "looks problematic to me" before I dare touch this ;-).
Klaus