Daniël Mantione wrote:

Op Tue, 17 Oct 2006, schreef Jonas Maebe:

On 17 okt 2006, at 09:25, Daniël Mantione wrote:

If I compare my implementation of the Chameneos benchmark with the one
from Marc (which uses Pthreads directly), mine is about two times slower.
This is propably caused that our thread functions often require multiple
Pthread calls,
Where? I only see this in starting/initialising/stopping/destructing things.
The actual locking etc use one pthread call in all cases afaics. Of course,
starting a Pascal thread requires initialising all the threadvars etc, but
that is not going to change if you use something else than pthreads.

For example:

procedure intRTLEventSetEvent(AEvent: PRTLEvent);
var p:pintrtlevent;

begin
  p:=pintrtlevent(aevent);
  pthread_mutex_lock(@p^.mutex);
  pthread_cond_signal(@p^.condvar);
  pthread_mutex_unlock(@p^.mutex);
end;

This was exactly the reason why I choose to use pthreads directly. For the given situation one single semaphore call could replace this.

Marc


_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to