diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-12-12 13:16:11 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-12-12 13:16:25 +0100 |
commit | 172e953147da1d82bf5a6746b2fe6112a9509ad7 (patch) | |
tree | ac343e5f8c6eaee52f162c86d0966924823e3514 /cpukit/posix/include/rtems/posix/keyimpl.h | |
parent | posix: Simplify _POSIX_Keys_Find() (diff) | |
download | rtems-172e953147da1d82bf5a6746b2fe6112a9509ad7.tar.bz2 |
posix: Delete key/value if value is set to NULL
Diffstat (limited to 'cpukit/posix/include/rtems/posix/keyimpl.h')
-rw-r--r-- | cpukit/posix/include/rtems/posix/keyimpl.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/cpukit/posix/include/rtems/posix/keyimpl.h b/cpukit/posix/include/rtems/posix/keyimpl.h index 1dcfb4e9c6..a5c80d625b 100644 --- a/cpukit/posix/include/rtems/posix/keyimpl.h +++ b/cpukit/posix/include/rtems/posix/keyimpl.h @@ -17,6 +17,7 @@ */ #include <rtems/posix/key.h> +#include <rtems/score/chainimpl.h> #include <rtems/score/freechain.h> #include <rtems/score/objectimpl.h> #include <rtems/score/percpu.h> @@ -186,6 +187,18 @@ RTEMS_INLINE_ROUTINE RBTree_Node *_POSIX_Keys_Find( ); } +RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free_key_value_pair( + POSIX_Keys_Key_value_pair *key_value_pair +) +{ + _RBTree_Extract( + &_POSIX_Keys_Key_value_lookup_tree, + &key_value_pair->Key_value_lookup_node + ); + _Chain_Extract_unprotected( &key_value_pair->Key_values_per_thread_node ); + _POSIX_Keys_Key_value_pair_free( key_value_pair ); +} + /** @} */ #ifdef __cplusplus |