summaryrefslogtreecommitdiff
path: root/components/libc/pthreads/pthread_barrier.c
diff options
context:
space:
mode:
authorMeco Man <[email protected]>2021-10-17 17:19:12 -0400
committerMeco Man <[email protected]>2021-10-17 17:19:12 -0400
commitb513d37cf2fc33c2dd20021316533feaac0bef23 (patch)
treef14e24d145a40620dbb8fd5a5d807b972ec4a1d5 /components/libc/pthreads/pthread_barrier.c
parent9fe546b0d86b17c64e57447913c8a9f3a9c40534 (diff)
[libc][posix] create 'posix' folder and move related files into it
Diffstat (limited to 'components/libc/pthreads/pthread_barrier.c')
-rw-r--r--components/libc/pthreads/pthread_barrier.c110
1 files changed, 0 insertions, 110 deletions
diff --git a/components/libc/pthreads/pthread_barrier.c b/components/libc/pthreads/pthread_barrier.c
deleted file mode 100644
index 1a5b7fa3f9..0000000000
--- a/components/libc/pthreads/pthread_barrier.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2010-10-26 Bernard the first version
- */
-
-#include <pthread.h>
-
-int pthread_barrierattr_destroy(pthread_barrierattr_t *attr)
-{
- if (!attr)
- return EINVAL;
-
- return 0;
-}
-RTM_EXPORT(pthread_barrierattr_destroy);
-
-int pthread_barrierattr_init(pthread_barrierattr_t *attr)
-{
- if (!attr)
- return EINVAL;
- *attr = PTHREAD_PROCESS_PRIVATE;
-
- return 0;
-}
-RTM_EXPORT(pthread_barrierattr_init);
-
-int pthread_barrierattr_getpshared(const pthread_barrierattr_t *attr,
- int *pshared)
-{
- if (!attr)
- return EINVAL;
- *pshared = (int)*attr;
-
- return 0;
-}
-RTM_EXPORT(pthread_barrierattr_getpshared);
-
-int pthread_barrierattr_setpshared(pthread_barrierattr_t *attr, int pshared)
-{
- if (!attr)
- return EINVAL;
- if (pshared == PTHREAD_PROCESS_PRIVATE)
- attr = PTHREAD_PROCESS_PRIVATE;
-
- return EINVAL;
-}
-RTM_EXPORT(pthread_barrierattr_setpshared);
-
-int pthread_barrier_destroy(pthread_barrier_t *barrier)
-{
- rt_err_t result;
-
- if (!barrier)
- return EINVAL;
-
- result = pthread_cond_destroy(&(barrier->cond));
-
- return result;
-}
-RTM_EXPORT(pthread_barrier_destroy);
-
-int pthread_barrier_init(pthread_barrier_t *barrier,
- const pthread_barrierattr_t *attr,
- unsigned count)
-{
- if (!barrier)
- return EINVAL;
- if (attr && (*attr != PTHREAD_PROCESS_PRIVATE))
- return EINVAL;
-
- barrier->count = count;
- pthread_cond_init(&(barrier->cond), NULL);
- pthread_mutex_init(&(barrier->mutex), NULL);
-
- return 0;
-}
-RTM_EXPORT(pthread_barrier_init);
-
-int pthread_barrier_wait(pthread_barrier_t *barrier)
-{
- rt_err_t result;
- if (!barrier)
- return EINVAL;
-
- result = pthread_mutex_lock(&(barrier->mutex));
- if (result != 0)
- return EINVAL;
-
- if (barrier->count == 0)
- result = EINVAL;
- else
- {
- barrier->count -= 1;
- if (barrier->count == 0) /* broadcast condition */
- pthread_cond_broadcast(&(barrier->cond));
- else
- pthread_cond_wait(&(barrier->cond), &(barrier->mutex));
- }
-
- pthread_mutex_unlock(&(barrier->mutex));
-
- return result;
-}
-RTM_EXPORT(pthread_barrier_wait);
-