diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-09-19 15:08:35 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-10-05 14:56:12 +0200 |
commit | 4fef7312b31bed6c77add331805f5212551c54cd (patch) | |
tree | 6759c884080b4707c274b420e6f966749108c2e4 /newlib | |
parent | f9b24fad7c7b0ed20d2c5c82bd97f7dd8e1532f0 (diff) | |
download | newlib-4fef7312b31bed6c77add331805f5212551c54cd.zip newlib-4fef7312b31bed6c77add331805f5212551c54cd.tar.gz newlib-4fef7312b31bed6c77add331805f5212551c54cd.tar.bz2 |
RTEMS: Optimize pthread_once_t
Reduce size of pthread_once_t and make it zero-initialized.
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
Diffstat (limited to 'newlib')
-rw-r--r-- | newlib/libc/sys/rtems/include/machine/_threads.h | 5 | ||||
-rw-r--r-- | newlib/libc/sys/rtems/include/sys/_pthreadtypes.h | 8 |
2 files changed, 6 insertions, 7 deletions
diff --git a/newlib/libc/sys/rtems/include/machine/_threads.h b/newlib/libc/sys/rtems/include/machine/_threads.h index 24db21c..5faa78f 100644 --- a/newlib/libc/sys/rtems/include/machine/_threads.h +++ b/newlib/libc/sys/rtems/include/machine/_threads.h @@ -41,12 +41,11 @@ typedef __uint32_t tss_t; /* pthread_once_t */ typedef struct { - int _is_initialized; - int _init_executed; + unsigned char _flags; } once_flag; /* PTHREAD_ONCE_INIT */ -#define ONCE_FLAG_INIT { 1, 0 } +#define ONCE_FLAG_INIT { 0 } /* PTHREAD_DESTRUCTOR_ITERATIONS */ #define TSS_DTOR_ITERATIONS 4 diff --git a/newlib/libc/sys/rtems/include/sys/_pthreadtypes.h b/newlib/libc/sys/rtems/include/sys/_pthreadtypes.h index bd66c68..9db50fe 100644 --- a/newlib/libc/sys/rtems/include/sys/_pthreadtypes.h +++ b/newlib/libc/sys/rtems/include/sys/_pthreadtypes.h @@ -169,11 +169,11 @@ typedef struct { typedef __uint32_t pthread_key_t; /* thread-specific data keys */ typedef struct { - int is_initialized; /* is this structure initialized? */ - int init_executed; /* has the initialization routine been run? */ -} pthread_once_t; /* dynamic package initialization */ + unsigned char _flags; +} pthread_once_t; + +#define _PTHREAD_ONCE_INIT { 0 } -#define _PTHREAD_ONCE_INIT { 1, 0 } /* is initialized and not run */ #endif /* defined(_POSIX_THREADS) */ /* POSIX Barrier Types */ |