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 <fguili...@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);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to