Date: Fri, 24 Sep 2010 10:38:05 +0200 From: Thomas Mueller <tmueller@sysgo.com> To: John Baldwin <jhb@freebsd.org> Cc: freebsd-gnats-submit@freebsd.org, Christopher Faylor <cgf@netapp.com>, freebsd-threads@freebsd.org Subject: Re: threads/150889: PTHREAD_MUTEX_INITIALIZER + pthread_mutex_destroy() == EINVAL Message-ID: <20100924103805.75c16735@tmu.ulm.sysgo.com> In-Reply-To: <201009231414.50271.jhb@freebsd.org> References: <201009231733.o8NHXuao082524@www.freebsd.org> <201009231414.50271.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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?20100924103805.75c16735>