diff options
| author | Bernard Xiong <[email protected]> | 2017-12-22 14:34:21 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-12-22 14:34:21 +0800 |
| commit | 4ab7214a321477b0cb90d73f1d605ff40fd1a003 (patch) | |
| tree | d9fb4f192e50738a7103d84e16d701b3d5ac3466 | |
| parent | 31151a775a32da61c1a3252c7f0684411f38ab80 (diff) | |
| parent | 3d65afc7d5c0e606712ecf90abb08f2edc159dfa (diff) | |
Merge pull request #1128 from jiaooo/dev
[PThreads] add some parameter check and function definition etc.
| -rw-r--r-- | components/libc/pthreads/pthread.h | 13 | ||||
| -rw-r--r-- | components/libc/pthreads/pthread_cond.c | 5 | ||||
| -rw-r--r-- | components/libc/pthreads/sched.h | 5 |
3 files changed, 17 insertions, 6 deletions
diff --git a/components/libc/pthreads/pthread.h b/components/libc/pthreads/pthread.h index dd1c5b5bd2..35fa817c0f 100644 --- a/components/libc/pthreads/pthread.h +++ b/components/libc/pthreads/pthread.h @@ -27,6 +27,7 @@ #include <rtthread.h> #include <posix_types.h> +#include <sched.h> #define PTHREAD_KEY_MAX 8 @@ -139,6 +140,11 @@ struct pthread_barrier }; typedef struct pthread_barrier pthread_barrier_t; +struct sched_param +{ + int sched_priority; +}; + /* pthread thread interface */ int pthread_attr_destroy(pthread_attr_t *attr); int pthread_attr_init(pthread_attr_t *attr); @@ -146,6 +152,8 @@ int pthread_attr_setdetachstate(pthread_attr_t *attr, int state); int pthread_attr_getdetachstate(pthread_attr_t const *attr, int *state); int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy); int pthread_attr_getschedpolicy(pthread_attr_t const *attr, int *policy); +int pthread_attr_setschedparam(pthread_attr_t *attr,struct sched_param const *param); +int pthread_attr_getschedparam(pthread_attr_t const *attr,struct sched_param *param); int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stack_size); int pthread_attr_getstacksize(pthread_attr_t const *attr, size_t *stack_size); int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stack_addr); @@ -156,7 +164,10 @@ int pthread_attr_setstack(pthread_attr_t *attr, int pthread_attr_getstack(pthread_attr_t const *attr, void **stack_base, size_t *stack_size); - +int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guard_size); +int pthread_attr_getguardsize(pthread_attr_t const *attr, size_t *guard_size); +int pthread_attr_setscope(pthread_attr_t *attr, int scope); +int pthread_attr_getscope(pthread_attr_t const *attr); int pthread_system_init(void); int pthread_create (pthread_t *tid, const pthread_attr_t *attr, void *(*start) (void *), void *arg); diff --git a/components/libc/pthreads/pthread_cond.c b/components/libc/pthreads/pthread_cond.c index 25628fc2b3..9349e84050 100644 --- a/components/libc/pthreads/pthread_cond.c +++ b/components/libc/pthreads/pthread_cond.c @@ -137,6 +137,9 @@ RTM_EXPORT(pthread_cond_destroy); int pthread_cond_broadcast(pthread_cond_t *cond) { rt_err_t result; + + if (cond == RT_NULL) + return EINVAL; if (cond->attr == -1) pthread_cond_init(cond, RT_NULL); @@ -173,6 +176,8 @@ int pthread_cond_signal(pthread_cond_t *cond) { rt_err_t result; + if (cond == RT_NULL) + return EINVAL; if (cond->attr == -1) pthread_cond_init(cond, RT_NULL); diff --git a/components/libc/pthreads/sched.h b/components/libc/pthreads/sched.h index 173f3eb2de..f0fa17bfa1 100644 --- a/components/libc/pthreads/sched.h +++ b/components/libc/pthreads/sched.h @@ -37,11 +37,6 @@ enum SCHED_MAX = SCHED_RR }; -struct sched_param -{ - int sched_priority; -}; - #ifdef __cplusplus extern "C" { |
