[PATCH] confdefs: update the CONFIGURE_MEMORY_FOR_POSIX_KEYS for rbtree version.

Gedare Bloom gedare at rtems.org
Tue Mar 5 22:04:51 UTC 2013


Does this confdefs patch look right? The memory for posix keys is:
keys * sizeof(POSIX_KEYS_Control) + (keys + pthreads) *
sizeof(POSIX_Keys_Rbtree_node)

Each pthread is allowed to setspecific on each key, and setspecific
causes a new rbtree node to be allocated.

Is it more than just pthreads, i.e. can classic threads use the POSIX
keys mechanism as well? If so the max threads should be used instead
of max pthreads.

-Gedare

On Tue, Mar 5, 2013 at 5:00 PM, Gedare Bloom <gedare at rtems.org> wrote:
> ---
>  cpukit/sapi/include/confdefs.h |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h
> index cc55e92..c8c3564 100644
> --- a/cpukit/sapi/include/confdefs.h
> +++ b/cpukit/sapi/include/confdefs.h
> @@ -1713,7 +1713,9 @@ rtems_fs_init_functions_t    rtems_fs_init_helper =
>    #else
>      #define CONFIGURE_MEMORY_FOR_POSIX_KEYS(_keys) \
>        (_Configure_Object_RAM(_keys, sizeof(POSIX_Keys_Control) ) \
> -        + (_keys) * 3 * _Configure_From_workspace(sizeof(void *) * 2))
> +        + (_Configure_Max_Objects(CONFIGURE_MAXIMUM_POSIX_THREADS) \
> +        + _Configure_Max_Objects(_keys)) \
> +        * _Configure_From_workspace(sizeof(POSIX_Keys_Rbtree_node)))
>    #endif
>
>    #ifndef CONFIGURE_MAXIMUM_POSIX_TIMERS
> --
> 1.7.1
>



More information about the devel mailing list