svn commit: r278313 - head/lib/libthr/thread
Konstantin Belousov
kib at FreeBSD.org
Fri Feb 6 12:18:39 UTC 2015
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 at 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);
More information about the svn-src-head
mailing list