On Wed, 25 Nov 2009, David Arturo Macias Corona wrote:

Hi,

> Below are results using:
> ------------------------
>    hbmk2 -m -n -w -es2 -l -kmo -gc3 speedtst.prg
>       speedtst.exe
>    hbmk2 -m -n -w -es2 -l -kmo -gc3 -mt speedtst.prg
>       speedtst.exe
>       speedtst.exe --thread
>       speedtst.exe --thread=2 --scale
> ------------------------
> for:
> a) Rev. 13006 without  -DHB_FM_DL_ALLOC
> b) Rev. 13015 without  -DHB_FM_DL_ALLOC, BUT ENABLED BY DEFAULT
> c) Rev. 13015 with  -DHB_FM_DL_ALLOC, BUT ENABLED BY DEFAULT
> And now how HB_FM_DL_ALLOC can be disabled ?

Just simply use only recent SVN version and -DHB_FM_STD_ALLOC to disable
DLMALLOC.

> And for --thread results, are you ready ... ?
> they fail with GPF as before
> When we stop tests with OS/2-Harbour-OpenWatcom 1.7a in December
> 2008 we left two pendings:
> a) Use of -bm
>  MT require -bm but ST no, and using -bm doubled run time, so we
> were force to build an Harbour for ST (without -bm) and other
> Harbour for MT (with -bm)
>  I see you are dealing with it now

I know about it but I intentionally disabled -bm because it was killing
the performance in MT mode due to OpenWatcom memory manage used in MT
builds. Now it's enabled by default because DLMALLOC does not create such
problems.

> b) Failure of --thread (--scale) with GPF
>  OS/2-Harbour-OpenWatcom 1.7a was failing in MT with more than one thread
>  I expected it was fixed with 1.8, but no
>  As you may remember, cause was isolated until routines for devices input
>  When you decide we can continue to fix it

It was a bug in OpenWatcom which was exploited in some calling convention
when some specific OS2 API functions were used, i.e. some mouse and
keyboard functions in GTOS2. It was hard to locate the exact problem
because this bug was corrupting C call stack indirectly and the problem
was not exploited when the given OS2 API function was executed but when
Harbour function containing calls to such OS2 API function was executed.

When Maurilio changed some OpenWatcom switches used to control calling
convention then the problem disappeared. I thought that we are keeping
these settings but if not then we will have to find them again and
reactivate.
It will be necessary to recompile Harbour using different switches.
First please try to remove -bm.
If it does not help in next step then please try to use stack calling
convention instead of register one and change:
   CFLAGS += -5r -fp5
to:
   CFLAGS += -5s -fp5
(If you are suing hbmk2 to create final application then you will have
to sync this switch and change -5r ot -5s in hbmk2.prg[2704]
If it does not help too then we will have to make some deeper tests.

best regards,
Przemek
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to