Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Sep 2010 09:00:15 GMT
From:      Thomas Mueller <tmueller@sysgo.com>
To:        freebsd-threads@FreeBSD.org
Subject:   Re: threads/150889: PTHREAD_MUTEX_INITIALIZER + pthread_mutex_destroy() == EINVAL
Message-ID:  <201009240900.o8O90FYm015166@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR threads/150889; it has been noted by GNATS.

From: Thomas Mueller <tmueller@sysgo.com>
To: John Baldwin <jhb@freebsd.org>
Cc: freebsd-threads@freebsd.org, freebsd-gnats-submit@freebsd.org,
 Christopher Faylor <cgf@netapp.com>
Subject: Re: threads/150889: PTHREAD_MUTEX_INITIALIZER +
 pthread_mutex_destroy() == EINVAL
Date: Fri, 24 Sep 2010 10:38:05 +0200

 On Thu, 23 Sep 2010 14:14:50 -0400, John Baldwin wrote:
 > On Thursday, September 23, 2010 1:33:56 pm Christopher Faylor wrote:
 > >   In cases where default mutex attributes are appropriate, the macro
 > >   PTHREAD_MUTEX_INITIALIZER can be used to initialize mutexes that are statically 
 > >   allocated. The effect shall be equivalent to dynamic initialization by a call to
 > >   pthread_mutex_init() with parameter attr specified as NULL, except that no error
 > >   checks are performed.
 > 
 > I suppose that is true, but I think this is also probably buggy code if you
 > are doing this.  The use case for PTHREAD_MUTEX_INITALIZER is static
 > initialization of static objects to ease adding locking to C libraries where
 > constructors are not easy.
 
 Note that future standard text might drop the "statically allocated"
 part in the pthread_mutex_init() description, see also
 http://www.austingroupbugs.net/view.php?id=70
 
 -- 
 Thomas Mueller



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009240900.o8O90FYm015166>