David,

what do you use to build harbour with watcom?

On my pc, simply trying to build a single .c file from the ide gives a trap
inside OS2KRNL, so I fear it is not SMP ready.

Maurilio.

David Arturo Macias Corona wrote:
> Przemek:
> 
>>So it's general problem with accessing console from other threads.
> 
>>To be precise it's KbdPeek() and kbhit() is probably simple wrapper to
>>it.
>>It means that OW internals are also effected by this problem.
>>The question is if it can be resolved or not. Is it OW bug or problem
>>with OS2 API. In GCC it seems to be resolved. The question is how.
> 
>>It does not have to be printf() behavior. 1-st it's always better to
>>redirect output to file to eliminate possible overwriting. The
>>second problem can be caused by possible compile time optimizations
>>which can change the order of executed instructions. In such case is
>>always good to pass to printf() some pointers to variables which are
>>used in function you want to trace to disable such optimization.
>>It's the reason why I added s_key pointer to "0. hb_gt_os2_ReadKey(%p)"
>>though in this case seems that it wasn't help though I'm not sure
>>you replicated it.
> 
> In all these tests I use outputs to screen and file and they do not show
> differences in these cases
> I was not aware of "optimization" and/or "to pass to printf() some
> pointers" so at last it was not replicated
> 
>>Many thanks for detail tests. We know the problem and now we will have
>>to find workaround for it. We can make it in simple way and disable
>>input for non main thread. BTW can you check if keyboard input works
>>correctly in GCC builds for all threads, f.e. inm code like:
> 
> Using this code with current Harbour
> -------------
>    proc main()
>    hb_threadJoin( hb_threadStart( @thFunc() ) )
>    return
>    proc thFunc()
>    local k
>       while (k:=inkey(0)) != 27
>          ? k
>       enddo
>    return
> -------------
> 
> the results are:
> 
> gcc335
> ======
> --------------------
> [E:\harbour811\harbour] bld_os2.cmd pba3 mt
> Harbour 1.1.0dev (Rev. 9903)
> Copyright (c) 1999-2008, http://www.harbour-project.org/
> Compiling 'pba3.prg'...
> Lines 10, Functions/Procedures 2
> Generating C source output to 'pba3.c'... Done.
> 
> [E:\harbour811\harbour]pba3.exe
> 
>         97
>        115
>        100
>        102
>        103
>        104
> --------------------
> 
> OpenWatcom 1.7a
> ===============
> --------------------
> [E:\harbour811\harbour]bin\pbaos2.cmd -mt pba3
> Open Watcom Linker Version 1.7
> Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved.
> Source code is available under the Sybase Open Watcom Public License.
> See http://www.openwatcom.org/ for details.
> loading object files
> searching libraries
> creating an OS/2 32-bit executable
> [E:\harbour811\harbour]pba3.exe
> SYS1808:
> The process has stopped.  The software diagnostic
> code (exception code) is  0001.
> --------------------
> 
> 
>>OS2 KBD API has functions KbdGetFocus() and KbdFreeFocus(). It's possible
>>that they will resolve the problem for keyboard input.
>>Finally we can simply check in GCC source what exactly it does to
>>resolve the problem. Seeing Maurilio comment in gtos2.c I guess that GCC
>> for OS2 has its own KbdCharIn() instead of direct mapping:
>>   #define KbdCharIn          KBD16CHARIN
>>and inside this function the problem is resolved. But I only guess.
>>I haven't ever seen this compiler.
>>For someone who has some experience with OS2 API the problem should
>>be easy to resolve or find workaround or give us an answer if it can
>>work.
> 
> I do not know what is KbdCharIn and KBD16CHARIN but two seem to be
> funtions/procedures
>  KbdCharIn is in list of OS/2 API anywhere
>  KBD16CHARIN, searching in Google/Lycos/HotBot/... appears few times and
> never explain what is and/or where is
> 
> David Macias
> 
> _______________________________________________
> Harbour mailing list
> Harbour@harbour-project.org
> http://lists.harbour-project.org/mailman/listinfo/harbour
> 

-- 
 __________
|  |  | |__| Maurilio Longo
|_|_|_|____| farmaconsult s.r.l.


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

Reply via email to