Date: Fri, 6 Feb 2015 12:18:39 +0000 (UTC) From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r278313 - head/lib/libthr/thread Message-ID: <201502061218.t16CIdrW081811@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kib Date: Fri Feb 6 12:18:38 2015 New Revision: 278313 URL: https://svnweb.freebsd.org/changeset/base/278313 Log: Fully initialize allocated memory for the new barrier. The b_destroying member was left uninitialized, which caused spurious EBUSY. PR: 197365 Noted by: Florent Guiliani <fguiliani@verisign.com> Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/lib/libthr/thread/thr_barrier.c Modified: head/lib/libthr/thread/thr_barrier.c ============================================================================== --- head/lib/libthr/thread/thr_barrier.c Fri Feb 6 10:10:57 2015 (r278312) +++ head/lib/libthr/thread/thr_barrier.c Fri Feb 6 12:18:38 2015 (r278313) @@ -86,16 +86,13 @@ _pthread_barrier_init(pthread_barrier_t if (barrier == NULL || count <= 0) return (EINVAL); - bar = malloc(sizeof(struct pthread_barrier)); + bar = calloc(1, sizeof(struct pthread_barrier)); if (bar == NULL) return (ENOMEM); _thr_umutex_init(&bar->b_lock); _thr_ucond_init(&bar->b_cv); - bar->b_cycle = 0; - bar->b_waiters = 0; bar->b_count = count; - bar->b_refcount = 0; *barrier = bar; return (0);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201502061218.t16CIdrW081811>