Hi Przemek,
1. Tracelog is not MT safe BTW: By default HVM is compiled with optional .prg function call tracing. This feature can be controlled (enabled/disabled) by __TRACEPRGCALLS() function. If user does not want to use it then he can rebuild Harbour with HB_NO_TRACE. IMHO HB_NO_TRACE should be default for Harbour builds and user who need it should recompile Harbour with HB_PRG_TRACE. I plan to make it soon.
I agree.
2. DEBUGGER is not MT safe. Now do not use debugger in code with more then one thread active or it will crash. Before we will touch this code please think how MT debugger should work.
Per thread debug windows maybe? Someone familiar with c# or Java MT-ing could give some hints how this matter is solved over there.
3. PROFILLER is not MT safe. It's optional code disabled by default. Before we will touch it please think how it should work for MT programs.
Something similar, each thread is getting all its information gathered in the profiler along with its thread ID. At the end we can get the same report as now for each thread, and maybe - as an extra - these values could be shown in an aggregated way for the whole application.
12. We should check contrib code and eliminate non MT safe code or document non MT safe functions.
Yes, this will be a big one, but a good opportunity to see what needs to be done to be MT in other apps/libs in general, too. It would be great if everyone could/would contribute here. Brgds, Viktor _______________________________________________ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour