Hi rooters As already mentioned we activated the TThread classes provided by root. ----------------------------------------------- A detailed report can be found on our Go4 site: http://www-wnt.gsi.de/go4/threads/tthread.htm ----------------------------------------------- We tested several modes: 1. TThread constructor is called by root interpreter. Works with thread functions defined in a shared library or defined within a root macro or within the calling macro. 2. TThread constructor is called by a compiled function. Thread functions were not called properly. Therefore we had to change TThread. The TThread object still could not be identified by name. Therefore we added two new TThread constructors which allow to specify the TThread name as string argument. 3. Thread synchronization using TCondition Objects works.. However, we had to fix definition of ERRNO() in PosixThreadInc.h to get proper return values from TimedWait. 4. Access to global objects (histograms, flags) in threads (created before thread creation). Works. If several threads are writing this should be locked explicitly via mutex. 5. Creating Objects and allocation of memory in threads. Must be locked explicitly via mutex. This can be critical because one not always 'sees' when objects are created. 6. Access to TCanvas, TPad and other graphics from threads. Does not work, even if access is locked explicitly. It seems that the errors occur in the X event handling outside root. Moving the mouse accelerates the crashes considerably. We will feed back the modified thread classes working as described. We don't see a chance for us to fix problems 5,6. Go4 developer team @ GSI Joern Adamczewski, Hans Essel, Marc Hemberger
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:36 MET