Fixed deadlock issue in pthread barrier wait.
authorDavid Zhu <yuzhu@cs.berkeley.edu>
Wed, 28 Apr 2010 02:57:55 +0000 (19:57 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:45 +0000 (17:35 -0700)
commitb47a6d4367dd585f91f669e43bf19c01f8cdbc36
tree5ddc18db9d363efda6c030395b6265c15dcab94c
parentecd778700fbebe45363d6eb6e2e0e49ca8a4b76f
Fixed deadlock issue in pthread barrier wait.

While a thread is waiting on a barrier, it can call pthread_yield and may come
back on a different vcore. Using vcore id as the index into the sense array
is wrong. Use pthread id instead.

In the future, we might dynamically allocate the sense array based on how
many pthreads will wait on a barrier, instead of having the static array.
user/include/pthread.h
user/parlib/pthread.c