On 07/05/2013 03:10 AM, Gedare Bloom wrote:
Sebastian,
I have been working with the student to get the keys code mergeable. We have
one last problem which maybe we can fix later. We need a generic freelist
implementation for some unlimited mode allocations. This is a boundary case and
can be ignored for now. I will push for code we can merge soon. It should fix
#3 (not sure if cancellation was tested) and 4, and #5 when we get freelist
merged. The code all exists just needs review, fix, and merge.

Its good that you work on this. Is it possible to get an overview of the data structures and objects involved, because I am not that happy with some parts of the patch posted to the list.

I would do it as follows:

Normal key objects which provide a tree root for key values (the thread ID is the tree key), e.g. no global tree.

Key values are part of the corresponding key tree and in a list of key values for the corresponding thread.

Each thread has a list of key values which is used to call the key destructors for the key values associated with the thread.

The key values are not objects, but are pre-allocated in chunks.  So we have

Configuration = {
  .maximum_key_values = X | rtems_resource_unlimited(Y);
}

In case no free key values are available we allocate a new chunk if the resource is unlimited or fail otherwise.

--
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : [email protected]
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
rtems-devel mailing list
[email protected]
http://www.rtems.org/mailman/listinfo/rtems-devel

Reply via email to