Maurilio,

Can you send me builtin.h or see xharbour\include\thread.h lines 109 and 
110 and do same in lines 197 and 198 with increment/decrement function 
for OS2.

*Walter Negro*
/Desarrollo e Investigación/
VsTour - Softmagic S.R.L.
*::* * VSTour.COM <http://www.vstour.com> * *::*


Maurilio Longo escribió:
> Walter,
>
> I've found that with gcc I have a builtin.h header with several atomic 
> functions.
>
> There are functions for signed and unsigned 32bits increment/decrement, which
> one should I use? I see that in windows you cast to a (long *), but hvm.c
> passes to HB_ATOMIC_INC() a ulHolders, for example, line 9355. So, which is
> the correct operation to do?
>
> Last one, I still need to use mutexes at the .prg level, am I right?
>
> Maurilio.
>
> PS. I can add builtin.h if you need to look at it.
>
> Walter Negro wrote:
>   
>> Maurilio,
>>
>> if you test mtcomplexshare.prg without the change in my commit, you can
>> obtain GPFs or Internal Error (Premature Pointer Release detected).
>>
>> The problem in low level is similar to problem in high level that you
>> see executing mtcomplexshare.prg without mutex.
>>
>> Some platforms or compilers do not have functions for atomic increment
>> and decrement, but some compilers create atomic increment and decrement
>> when using vars volatile.
>>
>>
>>
>> *Walter Negro*
>> /Desarrollo e Investigación/
>> VsTour - Softmagic S.R.L.
>> <mailto:[EMAIL PROTECTED]>
>> ------------------------------------------------------------------------
>> *::* * VSTour.COM <http://www.vstour.com> * *::*
>>
>>
>> Maurilio Longo escribió:
>>     
>>> Walter,
>>>
>>> I'm not sure I'm understanding this, but I did a test with
>>> mtcomplexshare.prg
>>> and I see that nGlobalCounter is protected by a mutex lock/unlock
>>> sequence.
>>>
>>> If I remove those mutex calls on OS/2 with GCC at the end the result
>>> shows big
>>> differences.
>>>
>>> --------8<----------------
>>> Thread 1 - LocalCounter=   5449444
>>> Thread 2 - LocalCounter=   5469999
>>> Total                     10919443
>>>
>>>           GlobalCounter=   6345520
>>>
>>> Difference                 4573923
>>> (E:\repos2\xharbour\tests)
>>> -------->8----------------
>>>
>>> See attachment.
>>>
>>> Maurilio.
>>>
>>>
>>>
>>> Walter Negro wrote:
>>>  
>>>       
>>>> 2008-06-28 15:25 UTC-0300 Walter Negro <anegro/at/overnet.com.ar>
>>>>  * include\hbdefs.h
>>>>  * include\hbvmpub.h
>>>>  * include\thread.h
>>>>  * source\rtl\hbxml.c
>>>>  * source\vm\arrays.c
>>>>  * source\vm\arrayshb.c
>>>>  * source\vm\codebloc.c
>>>>  * source\vm\fastitem.c
>>>>  * source\vm\fm.c
>>>>  * source\vm\garbage.c
>>>>  * source\vm\hvm.c
>>>>  * source\vm\itemapi.c
>>>>  * source\vm\thread.c
>>>>  * tests\mtcomplexshare.prg
>>>>    * Added atomic or volatile increment and decrement of counters of
>>>> complex types and structures.
>>>>      Now is safe to share complex data type in diferent threads if C
>>>> compiler or OS support
>>>>      function or create ASM thread-safe to inc/dec.
>>>>      NOTE: Atomic increment and decrement need counter memory aligned
>>>> and 32 bits of lenght.
>>>>
>>>> Walter Negro
>>>>
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>>
>>>> No virus found in this outgoing message.
>>>> Checked by AVG. Version: 8.0.101 / Virus Database: 270.4.2/1523 -
>>>> Release Date: 28/06/2008 07:00 a.m.
>>>>
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>> -------------------------------------------------------------------------
>>>>
>>>> Check out the new SourceForge.net Marketplace.
>>>> It's the best place to buy or sell services for
>>>> just about anything Open Source.
>>>> http://sourceforge.net/services/buy/index.php
>>>>
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>> _______________________________________________
>>>> xHarbour-developers mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/xharbour-developers
>>>>     
>>>>         
>>>   
>>>       
>>
>>     
>
>   



-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
xHarbour-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xharbour-developers

Reply via email to