>In some pass of:
>   HB_GTSELF_INKEYPOLL( pGT );

We have:
#define HB_GTSELF_INKEYPOLL(g) (g)->pFuncTable->InkeyPoll(g)

>The mutex locking is correct.
>Next candidate are GTOS2 internals.
>BTW have you tried to enable tracing?
>It would help us to locate the problem quite fast.

Not yet with hope to find problem with these tests

>If you will have problems with tracing then please tests
>code below. It's rtl/gtos2/gtos2.c hb_gt_os2_ReadKey()
>replacement.

I think error will happen with any gt
hbrun_mt.exe is gtos2 and current .prg for tests is gtstd

>> 2. hb_threadMutexLock()
>> 2. hb_inkeyPoll()
>> 3. hb_inkeyPoll()
>> The process has stopped.  The software diagnostic
>> code (exception code) is  0001.

>Try to check hb_gt_os2_ReadKey().
>In the .prg test code I sent was:

>   announce HB_GTSYS
>   request HB_GT_STD_DEFAULT

>Do you have it in your test?
>Can you runn this application with //info parameter so we can confirm
>the GT type?

pba.exe //info

Mixed with other output
-----------------
Harbour Terminal: Standard stream console
-----------------

>Can you check also:

>   announce HB_GTSYS
>   request HB_GT_CGI_DEFAULT

Harbour Terminal: Raw stream console
Harbour 1.1.0dev (Rev. 9846)
OS/2 4.50
DS avail=1720920KB  OS avail=1720920KB  EMM avail=0KB  MemStat:Off  MT:On


====  DOES NOT FAIL  =====
Results at end of message


>and:
>   announce HB_GTSYS
>   request HB_GT_OS2_DEFAULT

Not tested yet with your code replacement

Harbour Terminal: OS/2 console
Harbour 1.1.0dev (Rev. 9846)
OS/2 4.50
DS avail=1720464KB  OS avail=1720464KB  EMM avail=0KB  MemStat:Off  MT:On
SYS1808:
The process has stopped.  The software diagnostic
code (exception code) is  0001.

Fail exactly at same point as HB_GT_STD_DEFAULT

---------
[...]
2. hb_threadMutexLock()
_hb_gettid()
TID=1
1. hb_inkeyPoll()
1. hb_threadMutexLock()
_hb_gettid()
TID=2
_hb_gettid()
TID=2
2. hb_threadMutexLock()
2. hb_inkeyPoll()
3. hb_inkeyPoll()
---------

David Macias


Using HB_GT_CGI_DEFAULT
-----------------------

_hb_gettid()
TID=1
1. hb_threadMutexLock()
_hb_gettid()
TID=1
_hb_gettid()
TID=1
2. hb_threadMutexLock()
_hb_gettid()
TID=1
1. hb_threadMutexLock()
_hb_gettid()
TID=1
_hb_gettid()
TID=1
2. hb_threadMutexLock()
_hb_gettid()
TID=1
1. hb_threadMutexLock()
_hb_gettid()
TID=1
_hb_gettid()
TID=1
2. hb_threadMutexLock()
_hb_gettid()
TID=1
1. hb_threadMutexLock()
_hb_gettid()
TID=1
_hb_gettid()
TID=1
2. hb_threadMutexLock()
_hb_gettid()
TID=1
1. hb_threadMutexLock()
_hb_gettid()
TID=1
_hb_gettid()
TID=1
2. hb_threadMutexLock()
_hb_gettid()
TID=1
1. hb_threadMutexLock()
_hb_gettid()
TID=1
_hb_gettid()
TID=1
2. hb_threadMutexLock()
_hb_gettid()
TID=1
1. hb_threadMutexLock()
_hb_gettid()
TID=1
_hb_gettid()
TID=1
2. hb_threadMutexLock()
_hb_gettid()
TID=1
1. hb_threadMutexLock()
_hb_gettid()
TID=1
_hb_gettid()
TID=1
2. hb_threadMutexLock()
_hb_gettid()
TID=1
1. hb_threadMutexLock()
_hb_gettid()
TID=1
_hb_gettid()
TID=1
2. hb_threadMutexLock()
_hb_gettid()
TID=1
1. hb_inkeyPoll()
1. hb_threadMutexLock()
_hb_gettid()
TID=1
_hb_gettid()
TID=1
2. hb_threadMutexLock()
2. hb_inkeyPoll()
3. hb_inkeyPoll()
4. hb_inkeyPoll()
_hb_gettid()
TID=1
5. hb_inkeyPoll()
6. hb_inkeyPoll()
1. hb_threadMutexLock()
_hb_gettid()
TID=1
_hb_gettid()
TID=1
2. hb_threadMutexLock()
_hb_gettid()
TID=1
1. hb_inkeyPoll()
1. hb_threadMutexLock()
_hb_gettid()
TID=2
_hb_gettid()
TID=2
2. hb_threadMutexLock()
2. hb_inkeyPoll()
3. hb_inkeyPoll()
4. hb_inkeyPoll()
_hb_gettid()
TID=2
5. hb_inkeyPoll()
6. hb_inkeyPoll()
1. hb_threadMutexLock()
_hb_gettid()
TID=2
_hb_gettid()
TID=2
2. hb_threadMutexLock()
_hb_gettid()
TID=2
_hb_gettid()
TID=2
_hb_gettid()
TID=2
_hb_gettid()
TID=2
1. hb_threadMutexLock()
_hb_gettid()
TID=1
_hb_gettid()
TID=1
2. hb_threadMutexLock()
_hb_gettid()
TID=1

_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to