[RTEMS Project] #2831: libstdc++ silently fails in case POSIX key operations fail due to insufficient resources

RTEMS trac trac at rtems.org
Tue Dec 6 07:32:27 UTC 2016


#2831: libstdc++ silently fails in case POSIX key operations fail due to
insufficient resources
-----------------------------+------------------
 Reporter:  sebastian.huber  |      Owner:
     Type:  enhancement      |     Status:  new
 Priority:  normal           |  Milestone:  5.0
Component:  cpukit           |    Version:  4.11
 Severity:  normal           |   Keywords:
-----------------------------+------------------
 libstdc++ uses POSIX keys for thread-local storage in some places.  It
 silently fails in case POSIX key operations fail due to insufficient
 resources.  The storage space for POSIX keys is system provided via the
 workspace which must be configured accordingly.

 To remove the need for a detailed configuration one option is this.

 1. Make the pthread_key_t self-contained, e.g. add something like this to
 <pthread.h>

 {{{
 #!c
 struct _pthread_key_value_pair;

 typedef struct {
   void (*_destructor)(void *);
   struct _pthread_key_value_pair *_first;
   struct _pthread_key_value_pair *_null;
   struct _pthread_key_value_pair *_last;
 } pthread_key_t;
 }}}

 2. Add a configurable allocator for POSIX key value pairs to the
 configuration.

 3. Add a simple slab based allocator to RTEMS.

--
Ticket URL: <http://devel.rtems.org/ticket/2831>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list