Re: [Harbour] hb_threadID()

2008-10-07 Thread Szakáts Viktor
Hi, I didn't mean C compilers MM are better. I just proposed to try for example nedmalloc in MT. Somewhere I've found that libc's malloc is based on ptmalloc, and nedmalloc claims to be faster than ptmalloc. So, we can try nedmalloc for tests that gives bad results for dlmalloc. I've p

Re: [Harbour] hb_threadID()

2008-10-07 Thread Mindaugas Kavaliauskas
Przemyslaw Czerpak wrote: here are some words about dlmalloc and multi-thread: Thread-safety: NOT thread-safe unless USE_LOCKS defined When USE_LOCKS is defined, each public call to malloc, free, etc is surrounded with either a pthread mutex or a win32 spinlock (depending o

Re: [Harbour] hb_threadID()

2008-10-06 Thread Przemyslaw Czerpak
On Mon, 06 Oct 2008, Mindaugas Kavaliauskas wrote: Hi Mindaugas, > here are some words about dlmalloc and multi-thread: > Thread-safety: NOT thread-safe unless USE_LOCKS defined >When USE_LOCKS is defined, each public call to malloc, free, >etc is surrounded with either a pthrea

Re: [Harbour] hb_threadID()

2008-10-06 Thread Mindaugas Kavaliauskas
Przemyslaw Czerpak wrote: Looks that there in no important difference between DL-MM and BCC-MM in real MT programs in your system. DL has a little bit better performance. In my test in Linux DL-MM in MT mode was killing the performance in MT+ test in comparison to default SUSE malloc when in ST m

Re: [Harbour] hb_threadID()

2008-10-04 Thread Francesco Saverio Giudice
Hi Przemek, Przemyslaw Czerpak ha scritto: On Sat, 04 Oct 2008, Francesco Saverio Giudice wrote: Hi Francesco, Many thanks for your results. Looks that there in no important difference between DL-MM and BCC-MM in real MT programs in your system. DL has a little bit better performance. In my te

Re: [Harbour] hb_threadID()

2008-10-04 Thread Przemyslaw Czerpak
On Sat, 04 Oct 2008, Francesco Saverio Giudice wrote: Hi Francesco, Many thanks for your results. Looks that there in no important difference between DL-MM and BCC-MM in real MT programs in your system. DL has a little bit better performance. In my test in Linux DL-MM in MT mode was killing the p

Re: [Harbour] hb_threadID()

2008-10-04 Thread Francesco Saverio Giudice
Hi Przemek, Przemyslaw Czerpak ha scritto: On Fri, 03 Oct 2008, Francesco Saverio Giudice wrote: Hi Francesco, Here my test: Intel(R) Core(TM)2 Duo CPU T8300 @ 2.40GHz L2 Cache Size: 3072 Kb, Bus: 200 Mhz 4 GB RAM, Vista Ultimate 32bit Standard Build: set C_USR=-DHB_FM_STATISTICS_OFF set HB_B

Re: [Harbour] hb_threadID()

2008-10-03 Thread Przemyslaw Czerpak
On Fri, 03 Oct 2008, Francesco Saverio Giudice wrote: Hi Francesco, > Here my test: > Intel(R) Core(TM)2 Duo CPU T8300 @ 2.40GHz > L2 Cache Size: 3072 Kb, Bus: 200 Mhz > 4 GB RAM, Vista Ultimate 32bit > Standard Build: > set C_USR=-DHB_FM_STATISTICS_OFF > set HB_BUILD_ST= I would like to ask you

Re: [Harbour] hb_threadID()

2008-10-03 Thread Przemyslaw Czerpak
On Fri, 03 Oct 2008, Francesco Saverio Giudice wrote: Hi Francesco, > Here my test: > Intel(R) Core(TM)2 Duo CPU T8300 @ 2.40GHz > L2 Cache Size: 3072 Kb, Bus: 200 Mhz > 4 GB RAM, Vista Ultimate 32bit > Harbour Terminal: Windows native console > Harbour 1.1.0dev (Rev. 9542) > Windows Vista 6.0.60

Re: [Harbour] hb_threadID()

2008-10-03 Thread Francesco Saverio Giudice
Hi Przemek, Przemyslaw Czerpak ha scritto: To Windows users: I'm very interested in MS-Windows results from real multi CPU machine. Does anyone have such computer and can test it? Here my test: Intel(R) Core(TM)2 Duo CPU T8300 @ 2.40GHz L2 Cache Size: 3072 Kb, Bus: 200 Mhz 4 GB RAM, Vista Ul

Re: [Harbour] hb_threadID()

2008-10-03 Thread Przemyslaw Czerpak
On Fri, 03 Oct 2008, Enrico Maria Giordano wrote: Hi Enrico, >> To Windows users: >> I'm very interested in MS-Windows results from real multi CPU machine. >> Does anyone have such computer and can test it? > Yes, I have an Intel Core 2 CPU 6320. Can you briefly summarize the steps > required to

Re: [Harbour] hb_threadID()

2008-10-03 Thread Przemyslaw Czerpak
On Fri, 03 Oct 2008, Maurilio Longo wrote: Hi Maurilio, > You're using mutexes for critical sections, in OS/2 there is a > DosEnterCritSection() call which stops task switching until after a > DosExitCritSection() is called. This is only terminology problem. In OS2 API CRITICAL SECTION means pea

Re: [Harbour] hb_threadID()

2008-10-03 Thread Maurilio Longo
Przemyslaw Czerpak wrote: > The results are much worse then in my Linux box. > It can be caused be few reasons: > 1. the cost of task switching is probably much higher in OS2 then >in Linux because it has to reload memory descriptors for each >thread - it's forced by TLS format. I don't kno

Re: [Harbour] hb_threadID()

2008-10-03 Thread Enrico Maria Giordano
-Messaggio Originale- Da: "Przemyslaw Czerpak" <[EMAIL PROTECTED]> A: "Harbour Project Main Developer List." Data invio: venerdì 3 ottobre 2008 18.23 Oggetto: Re: [Harbour] hb_threadID() To Windows users: I'm very interested in MS-Windows results fr

Re: [Harbour] hb_threadID()

2008-10-03 Thread Przemyslaw Czerpak
On Fri, 03 Oct 2008, Maurilio Longo wrote: > And the winner is :) > they're slower than before. a lot! > I attach two files, speedtst.log which is built with -gc3 and hbvmmt and > speedtstmt.log which is built with the same options but started with a > parameter so that it runs with several thr

Re: [Harbour] hb_threadID()

2008-10-03 Thread Maurilio Longo
And the winner is :) they're slower than before. a lot! I attach two files, speedtst.log which is built with -gc3 and hbvmmt and speedtstmt.log which is built with the same options but started with a parameter so that it runs with several threads. Best regards. Maurilio Longo wrote: > Ok, >

Re: [Harbour] hb_threadID()

2008-10-03 Thread Maurilio Longo
Ok, found it, I had to move main() as first procedure in file. Maurilio. -- __ | | | |__| Maurilio Longo |_|_|_|| farmaconsult s.r.l.  ___ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/list

Re: [Harbour] hb_threadID()

2008-10-03 Thread Maurilio Longo
Przemyslaw, I was going to try new speedtst, but even if it builds ok, it does not start, there is no error, no exception, no output. It simply exits. Any idea? Maurilio. Przemyslaw Czerpak wrote: > On Fri, 03 Oct 2008, Maurilio Longo wrote: > > Hi Maurilio, > >>> In -gc[0-2] mode each threa

Re: [Harbour] hb_threadID()

2008-10-03 Thread Przemyslaw Czerpak
On Fri, 03 Oct 2008, Maurilio Longo wrote: Hi Maurilio, > > In -gc[0-2] mode each threads makes: > > if( ! --uiPolls ) > > hb_inkeyPoll(); > > in main HVM loop. Simple hack even acceptable in ST programs is killing > > the performance in ST ones. Important is not hb_inkeyPoll() cal

Re: [Harbour] hb_threadID()

2008-10-03 Thread Maurilio Longo
And I did a full comparison, here we go MT my speedtst modified to use two threads, -gc3 55.2 MT original speedtst, -gc3 65.07 MT original speedtst, no gc options, so -gc0 71.4 ST original speedtst, no gc options, so -gc0 52.2 Maurilio. -- __ | | | |__| Maurilio Long

Re: [Harbour] hb_threadID()

2008-10-03 Thread Maurilio Longo
Hi Przemyslaw, Przemyslaw Czerpak wrote: > And I've got the answer. At least on my computer it's a hardware issue. > In -gc[0-2] mode each threads makes: > > if( ! --uiPolls ) > hb_inkeyPoll(); > > in main HVM loop. Simple hack even acceptable in ST programs is killing > the perfo

Re: [Harbour] hb_threadID()

2008-10-03 Thread Maurilio Longo
Pritpal, Sorry, I was not clear enough, on OS/2 threads are numerated like this, xbase++ was born on OS/2 and probably mutuated such numbering from the OS. Best regards. Maurilio. Pritpal Bedi wrote: > Maurilio > > > Because I'm used to use a thread id which is a number, this is the way i

Re: [Harbour] hb_threadID()

2008-10-03 Thread Maurilio Longo
Przemyslaw Czerpak wrote: > > But you haven't explained why numeric value is better then pointer. Because when you print it it is more 'natural' or easy to the eye than a 0x03938474 or something like that. That said, you're the master here, I did not want to introduce inconsistencies in the way t

Re: [Harbour] hb_threadID()

2008-10-02 Thread Przemyslaw Czerpak
On Thu, 02 Oct 2008, Przemyslaw Czerpak wrote: > Harbour in practice does not use any of such mutexes. Only some few small > peaces of code are covered by them and it's small chance that two threads > will be serialized. The cost of setting/releasing mutexes is the same for > one and two threads so

Re: [Harbour] hb_threadID()

2008-10-02 Thread Pritpal Bedi
Maurilio Because I'm used to use a thread id which is a number, this is the way it works on OS/2 and xbase++ on win32 and I did not find something similar in current code. Perhaps you are misunderstood of Xbase++ thread implementation. ThreadID() function in Xbase++ always returns the

Re: [Harbour] hb_threadID()

2008-10-02 Thread Szakáts Viktor
Hi folks, Why you cannot use hb_threadSelf()? Because I'm used to use a thread id which is a number, this is the way it works on OS/2 and xbase++ on win32 and I did not find something similar in current code. Not all OSes have to support numeric thread ID. If you need number then we w

Re: [Harbour] hb_threadID()

2008-10-02 Thread Przemyslaw Czerpak
On Thu, 02 Oct 2008, Maurilio Longo wrote: Hi Maurilio, > > Why you cannot use hb_threadSelf()? > Because I'm used to use a thread id which is a number, this is the way it > works on OS/2 and xbase++ on win32 and I did not find something similar in > current code. Not all OSes have to support nu

Re: [Harbour] hb_threadID()

2008-10-02 Thread Maurilio Longo
Hi Przemyslaw, Przemyslaw Czerpak wrote: > Why you cannot use hb_threadSelf()? Because I'm used to use a thread id which is a number, this is the way it works on OS/2 and xbase++ on win32 and I did not find something similar in current code. > It also returns valid identifier which is compatible

Re: [Harbour] hb_threadID()

2008-10-02 Thread Przemyslaw Czerpak
On Thu, 02 Oct 2008, Maurilio Longo wrote: Hi Maurilio, > I've added this little function to my copy of vm\thread.c, I attach it here so > that Przemyslaw and/or Viktor can have a look at it and also because I'm not > at ease with branching and so I don't know where to commit this change. > -

[Harbour] hb_threadID()

2008-10-02 Thread Vailton Renato
Okay, the numeric type of return values very important... PS: Sorry for bad english! ___ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour

Re: [Harbour] hb_threadID()

2008-10-02 Thread Maurilio Longo
Renato, thanks, I've changed it to return 0, but a I think, see discussion with Viktor, that it should be '1'. Best regards. Maurilio. Vailton Renato wrote: > Hi! > > I would like to make one small suggestion: > > ---8<- > HB_FUNC( HB_THREADID ) > { > #if defined( HB_M

Re: [Harbour] hb_threadID()

2008-10-02 Thread Maurilio Longo
Viktor, yes, I had to log in to sourceforge, now it seems I was able to commit. Thanks. Maurilio. Szakáts Viktor wrote: > A bit later yes, but if you didn't commit since > a long time, it's more probable that you have > to first login to sf.net homepage and change > you password, because they'v

Re: [Harbour] hb_threadID()

2008-10-02 Thread Szakáts Viktor
A bit later yes, but if you didn't commit since a long time, it's more probable that you have to first login to sf.net homepage and change you password, because they've reset them a while ago (due to some security leaks). After changin pw, SVN login should work. Brgds, Viktor On 2008.10.02., at

[Harbour] hb_threadID()

2008-10-02 Thread Vailton Renato
Hi! I would like to make one small suggestion: ---8<- HB_FUNC( HB_THREADID ) { #if defined( HB_MT_VM ) PHB_THREADSTATE pThread = ( PHB_THREADSTATE ) hb_vmThreadState(); if( pThread ) hb_retnl( pThread->th_id ); else #endif hb_retni( 0 ); } --->8---

Re: [Harbour] hb_threadID()

2008-10-02 Thread Maurilio Longo
Viktor, can you confirm that I have write rights on svn since I get a 401 authorization required trying to commit. Best regards. Szakáts Viktor wrote: > > On 2008.10.02., at 13:48, Maurilio Longo wrote: > >> Szakáts Viktor wrote: > IMO, zero for main thread is alright. I think it shou

Re: [Harbour] hb_threadID()

2008-10-02 Thread Szakáts Viktor
On 2008.10.02., at 13:48, Maurilio Longo wrote: Szakáts Viktor wrote: IMO, zero for main thread is alright. I think it should be 1 (one) given that the first thread I create has a threadid of 2 and so on. This way it something doesn't seem to be right indeed. I'd think, the first thread

Re: [Harbour] hb_threadID()

2008-10-02 Thread Maurilio Longo
Szakáts Viktor wrote: >>> IMO, zero for main thread is alright. >> I think it should be 1 (one) given that the first thread I create has a >> threadid of 2 and so on. > > This way it something doesn't seem to be right indeed. > > I'd think, the first thread (above main one) should get ID #1, seco

Re: [Harbour] hb_threadID()

2008-10-02 Thread Szakáts Viktor
Szakáts Viktor wrote: I see no problem with this code. You can just simply commit it to the trunk (as usual). Ok, I'll try in a while. Okay. I,ve also noted that thread 1 has a threadid of 0 (zero) while the other threads have the correct id, maybe this is a minor glitch to correct. IM

Re: [Harbour] hb_threadID()

2008-10-02 Thread Maurilio Longo
Hi Viktor, Szakáts Viktor wrote: > I see no problem with this code. You can just simply > commit it to the trunk (as usual). > Ok, I'll try in a while. >> I,ve also noted that thread 1 has a threadid of 0 (zero) while the other >> threads have the correct id, maybe this is a minor glitch to corr

Re: [Harbour] hb_threadID()

2008-10-02 Thread Szakáts Viktor
Hi Maurilio, I've added this little function to my copy of vm\thread.c, I attach it here so that Przemyslaw and/or Viktor can have a look at it and also because I'm not at ease with branching and so I don't know where to commit this change. ---8<- HB_FUNC( HB_THREA

[Harbour] hb_threadID()

2008-10-02 Thread Maurilio Longo
Hi, I've added this little function to my copy of vm\thread.c, I attach it here so that Przemyslaw and/or Viktor can have a look at it and also because I'm not at ease with branching and so I don't know where to commit this change. ---8<- HB_FUNC( HB_THREADID ) { #if defin