svn commit: r194783 - head/lib/libc/stdtime

M. Warner Losh imp at bsdimp.com
Wed Nov 18 03:51:34 UTC 2009


In message: <4B01E548.7040708 at gmail.com>
            Dmitry Pryanishnikov <lynx.ripe at gmail.com> writes:
: 
: Hello!
: 
: > Author: edwin
: > Date: Tue Jun 23 22:28:44 2009
: > New Revision: 194783
: > URL: http://svn.freebsd.org/changeset/base/194783
: > 
: > Log:
: >   Remove duplicate if-statement on gmt_is_set in gmtsub().
: >   
: >   MFC after:	1 week
: > 
: > Modified:
: >   head/lib/libc/stdtime/localtime.c
: > 
: > Modified: head/lib/libc/stdtime/localtime.c
: > ==============================================================================
: > --- head/lib/libc/stdtime/localtime.c	Tue Jun 23 22:22:20 2009	(r194782)
: > +++ head/lib/libc/stdtime/localtime.c	Tue Jun 23 22:28:44 2009	(r194783)
: > @@ -1472,18 +1472,16 @@ struct tm * const	tmp;
: >  {
: >  	register struct tm *	result;
: >  
: > +	_MUTEX_LOCK(&gmt_mutex);
: >  	if (!gmt_is_set) {
: > -		_MUTEX_LOCK(&gmt_mutex);
: > -		if (!gmt_is_set) {
: 
:    This change looks like a (small?) pessimization to me: before it, 
: _MUTEX_LOCK/_MUTEX_UNLOCK pair would be skipped for the case gmt_is_set 
: == TRUE (all invocations except the first one), now it won't. I'm not 
: sure whether this is critical here though...

I think this is a big pessimization.  gmt_is_set code only needs to
execute once, and this code was designed to be lockless once
gmt_is_set was set...

Warner


More information about the svn-src-head mailing list