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

