diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-12-27 19:15:57 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-12-27 19:15:57 +0000 |
commit | c7e872bca3c3f2831bb426bdb29f6e3baf12d487 (patch) | |
tree | 22643ef845482489284e49a088e9043877cea223 /sysdeps/htl/pt-cond-init.c | |
parent | dd8cbb15da8a2d4912a7f54781537e01032f6556 (diff) | |
parent | 3fcbb67b7949a8b362de5558bf1c6dd7ec5d21cf (diff) |
Merge branch 't/tls-threadvar' into refs/top-bases/t/gsync-libc-merge
Diffstat (limited to 'sysdeps/htl/pt-cond-init.c')
-rw-r--r-- | sysdeps/htl/pt-cond-init.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/sysdeps/htl/pt-cond-init.c b/sysdeps/htl/pt-cond-init.c new file mode 100644 index 0000000000..4c112e2789 --- /dev/null +++ b/sysdeps/htl/pt-cond-init.c @@ -0,0 +1,45 @@ +/* pthread_cond_init. Generic version. + Copyright (C) 2002-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <pthread.h> +#include <assert.h> +#include <string.h> + +#include <pt-internal.h> + +int +__pthread_cond_init (pthread_cond_t *cond, const pthread_condattr_t * attr) +{ + *cond = (pthread_cond_t) __PTHREAD_COND_INITIALIZER; + + if (attr == NULL + || memcmp (attr, &__pthread_default_condattr, sizeof (*attr) == 0)) + /* Use the default attributes. */ + return 0; + + /* Non-default attributes. */ + + cond->__attr = malloc (sizeof *attr); + if (cond->__attr == NULL) + return ENOMEM; + + *cond->__attr = *attr; + return 0; +} + +strong_alias (__pthread_cond_init, pthread_cond_init); |