Hello,
I have an CMake standalone application using ROOT TThreads.
I have followed what is suggested by GSI, point 6.1 How to Use the ROOT TThread to use a custom class with a member function.
When I start the thread, I get this warning: Error in <TReentrantRWLock::WriteUnLock>: Write lock already released for 0x560b57ac93f8
What does it mean? Is it a problem? The program works fine.
The issue arises when I call the inside the static void* handle function a non-static member function of the MyThreadClass (derived from TThread) as follows:
Hi,
TThread is legacy/deprecated in favor of std::thread, I’m afraid I don’t know much about its internals. We need @pcanal . With that said:
It looks like a bug in either TThread or ROOT’s TReentrantRWLock: it might not be a problem for your program but we definitely don’t want that to happen in general, in ROOT. It would be nice if you could provide a reproducer.
That is very weird. The object type printing the message is TReentrantRWLock which (unless you inherited from that internal type!) is not the case of your thread object. This would indicate that there is somewhere a memory error … (maybe the static case is wrong … humm still odd … maybe you could provide a complete running (and thus failing) example)