DragonFly BSD
DragonFly commits List (threaded) for 2005-05
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: cvs commit: src/include stdio.h src/lib/libc/gen _pthread_stubs.c src/lib/libc/stdio _flock_stub.c asprintf.c findfp.c fseek.c local.h refill.c snprintf.c sprintf.c sscanf.c ungetc.c vasprintf.c vfprintf.c vsnprintf.c vsprintf.c vsscanf.c

From: davidxu <davidxu@xxxxxxxxxxx>
Date: Tue, 10 May 2005 06:27:07 +0800

Joerg Sonnenberger wrote:
On Mon, May 09, 2005 at 09:37:16PM +0800, davidxu wrote:

Why can't this code use PTHREAD_MUTEX_RECURSIVE?


Hmm, we don't create mutex at same time when FILE is created, it will be created automatically by pthread_mutex_lock when program is threaded, it is zero cost if program is single thread.

Well, for a truely single threaded program (not linked against libc_r
or others), we can use __isthreaded to skip it. Otherwise we have to
use a mutex anyway. Such optimisations belong IMO into the thread
library and not into libc.


We already did the optimizations by using macro FILELOCK In libc_private.h. Another reason to not use recursive mutex is that default mutex is not recursive, and dynamically creating it have race.

David Xu

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]