unlimited (was Re: task notepad question)

Chris Johns cjohns at cybertec.com.au
Wed Nov 6 02:06:24 UTC 2002

Joel Sherrill wrote:

> Chris Johns wrote:
> >Joel Sherrill wrote:
> >
> >>NOTE: The set of POSIX keys is not enlarged if you use unlimited tasks.
> >
> >Does the user get the correct error code in the current code ?
> What would it be and who would trigger it?  All tasks/threads are
> supposed to have a key slot.

Does a POSIX app that creates more threads than keys with the task 
number set to unlmited handle the error correctly ?

> >Do any other parts of the POSIX API suffer from this problem or is it
> >just threads (tasks!) ?
> I think that it is just keys.  I think you can extend the number of
> POSIX threads.  But keys are different.

I think I need to look at the way this is implement to see the relationship.

> >This is also the case with User Extensions and the drivers table. You
> >can add drivers after starting, but the number is fixed. Any others ?
> I don't think this is that bad a problem.  It is just a configuration
> limit.

I suspect this depends on where you view the configuration table 
resides. I have the configuration in the BSP not the application and the 
BSP is built separate from RTEMS, and the application. The hardware + 
bsp model.

> >I can raise a PR for this and list all the areas that need to be 
> looked at.
> >
> >I have not looked at the POSIX implementation so far :-). Are keys
> >handled in one spot ?
> As much as anything in RTEMS... see cpukit/posix/src/key*.c.  The
> problem is that there is no event/API hook when the number of 
> tasks/threads increases.  Look at keycreate.c and you will see the 
> problem.

Maybe I am missing something here. The keys are objects 
(_POSIX_Keys_Allocate) so setting object info structure's auto_extend to 
true will result in unlimited keys.

I do not understand the api loop.

  Chris Johns, cjohns at cybertec.com.au

More information about the users mailing list