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

Reply via email to