<p>Sebastian,<br>
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.<br>

-Gedare</p>
<div class="gmail_quote">On Jul 4, 2013 3:27 AM, "Sebastian Huber" <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello,<br>
<br>
we added support for thread-local storage on PowerPC for C11 and GCC __thread.  The work on C++11 support revealed a couple of problems.<br>
<br>
1. The general C++ support code is not SMP safe.  It uses task variables and disables preemption to ensure mutual exclusion.<br>
<br>
2. The implementation of thread keys in the C++ support is not standard conform.  The destructors must be called during thread exit and cancellation.<br>
<br>
3. The implementation of POSIX keys is not standard conform.  The destructors must be called during thread exit and cancellation.<br>
<br>
4. The workspace estimate for POSIX keys is wrong.  It depends on the maximum thread count in the system times the maximum key count.<br>
<br>
5. The POSIX keys are broken if someone uses unlimited thread objects.<br>
<br>
To address the C++ problems we propose:<br>
<br>
1. Move the POSIX keys to the Classic API.<br>
<br>
2. Implement the POSIX keys with the red-black tree instead of the fixed table lookup.<br>
<br>
3. Fix the configuration issues.<br>
<br>
There was a GSoC project in 2012 for this which addressed parts of the above issues.  Where can I find the latest status of this project?<br>
<br>
-- <br>
Sebastian Huber, embedded brains GmbH<br>
<br>
Address : Dornierstr. 4, D-82178 Puchheim, Germany<br>
Phone   : <a href="tel:%2B49%2089%20189%2047%2041-16" value="+4989189474116" target="_blank">+49 89 189 47 41-16</a><br>
Fax     : <a href="tel:%2B49%2089%20189%2047%2041-09" value="+4989189474109" target="_blank">+49 89 189 47 41-09</a><br>
E-Mail  : <a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-<u></u>brains.de</a><br>
PGP     : Public key available on request.<br>
<br>
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
______________________________<u></u>_________________<br>
rtems-devel mailing list<br>
<a href="mailto:rtems-devel@rtems.org" target="_blank">rtems-devel@rtems.org</a><br>
<a href="http://www.rtems.org/mailman/listinfo/rtems-devel" target="_blank">http://www.rtems.org/mailman/<u></u>listinfo/rtems-devel</a><br>
</blockquote></div>