<br><br><div class="gmail_quote">2012/7/9 Sebastian Huber <span dir="ltr"><<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 07/09/2012 08:28 AM, Ashi wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
2012/7/6 Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-<u></u>brains.de</a><br>
<mailto:<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@<u></u>embedded-brains.de</a>>><div class="im"><br>
<br>
    On 07/06/2012 11:49 AM, Ashi wrote:<br>
<br>
        I've a problem of _Thread_Disable_dispatch() function in below code.<br>
        It's my<br>
        implementation of _POSIX_Keys_Run_destructors() function. I come across the<br>
        problem when I run the psxkey03 test:if _Thread_Disable_dispatch() was<br>
        commented out, psxkey03 can run without problem. when<br>
        _Thread_Disable_dispatch() added at line 1(as below), psxkey03 will fail. I<br>
        debug it in sparc-rtems4.11-gdb, and find psxkey03 runs into<br>
        _Internal_error_Occurred() function then stop. I know<br>
        _POSIX_Keys_Get()(at line<br>
        12) will also disable thread dispatch--does this lead to the problem?<br>
        However,<br>
        can't figure out where exactly the problem exists, could anyone explain<br>
        it? Thanks!<br>
<br>
<br>
    The _Thread_Disable_dispatch() can nest.  I suppose you want to acquire a<br>
    resource in the destructor which is not free.  The path to<br>
    _Internal_error_Occurred() should show the problem.<br>
<br>
Sebastian, I follow the calls in gdb, and find the error is:<br>
  Program received signal SIGINT, Interrupt.<br>
0x020168b8 in _Internal_error_Occurred (the_source=INTERNAL_ERROR_<u></u>CORE,<br>
is_internal=true, the_error=5)<br>
     at ../../../../../../rtems/c/src/<u></u>../../cpukit/score/src/interr.<u></u>c:58<br>
58      _CPU_Fatal_halt( the_error );<br>
</div></blockquote>
<br>
What is the call stack here?<br>
<br>
The error=5 is probably INTERNAL_ERROR_THREAD_EXITTED (see also Internal_errors_Core_list).  How did you terminate the task?<div class="HOEnZb"><div class="h5"><br>
<br>
-- <br>
Sebastian Huber, embedded brains GmbH<br>
<br>
Address : Obere Lagerstr. 30, D-82178 Puchheim, Germany<br>
Phone   : <a href="tel:%2B49%2089%2018%2090%2080%2079-6" value="+4989189080796" target="_blank">+49 89 18 90 80 79-6</a><br>
Fax     : <a href="tel:%2B49%2089%2018%2090%2080%2079-9" value="+4989189080799" target="_blank">+49 89 18 90 80 79-9</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>
<br>
<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>
</div></div></blockquote></div><br>Sebastian, I think the problem is I'm not clear with the thread dispatch disable level. You said that "in order to avoid some large critical sections the thread dispatch disable level was introduced." before. What's the difference between different dispatch disable levels? Are there any documents about thread dispatch disable level? <br clear="all">
<br>-- <br>Best wishes!<br>Zhongwei Yao<br><br>