1
0
mirror of https://github.com/postgres/postgres.git synced 2025-05-03 22:24:49 +03:00

Fix error handling in replacement pthread_barrier_init().

Commit 44bf3d50 incorrectly used an errno-style interface when supplying
missing pthread functionality (i.e. on macOS), but it should check for
and return error numbers directly.
This commit is contained in:
Thomas Munro 2021-06-01 11:22:22 +12:00
parent 7c544ecdad
commit a40646e30d

View File

@ -18,19 +18,17 @@
int
pthread_barrier_init(pthread_barrier_t *barrier, const void *attr, int count)
{
int error;
barrier->sense = false;
barrier->count = count;
barrier->arrived = 0;
if (pthread_cond_init(&barrier->cond, NULL) < 0)
return -1;
if (pthread_mutex_init(&barrier->mutex, NULL) < 0)
if ((error = pthread_cond_init(&barrier->cond, NULL)) != 0)
return error;
if ((error = pthread_mutex_init(&barrier->mutex, NULL)) != 0)
{
int save_errno = errno;
pthread_cond_destroy(&barrier->cond);
errno = save_errno;
return -1;
return error;
}
return 0;