disable thread dispatch problem

Ashi ashi08104 at gmail.com
Mon Jul 9 12:56:47 UTC 2012


2012/7/9 Sebastian Huber <sebastian.huber at embedded-brains.de>

> On 07/09/2012 08:28 AM, Ashi wrote:
>
>>
>>
>> 2012/7/6 Sebastian Huber <sebastian.huber at embedded-**brains.de<sebastian.huber at embedded-brains.de>
>> <mailto:sebastian.huber@**embedded-brains.de<sebastian.huber at embedded-brains.de>
>> >>
>>
>>
>>     On 07/06/2012 11:49 AM, Ashi wrote:
>>
>>         I've a problem of _Thread_Disable_dispatch() function in below
>> code.
>>         It's my
>>         implementation of _POSIX_Keys_Run_destructors() function. I come
>> across the
>>         problem when I run the psxkey03 test:if
>> _Thread_Disable_dispatch() was
>>         commented out, psxkey03 can run without problem. when
>>         _Thread_Disable_dispatch() added at line 1(as below), psxkey03
>> will fail. I
>>         debug it in sparc-rtems4.11-gdb, and find psxkey03 runs into
>>         _Internal_error_Occurred() function then stop. I know
>>         _POSIX_Keys_Get()(at line
>>         12) will also disable thread dispatch--does this lead to the
>> problem?
>>         However,
>>         can't figure out where exactly the problem exists, could anyone
>> explain
>>         it? Thanks!
>>
>>
>>     The _Thread_Disable_dispatch() can nest.  I suppose you want to
>> acquire a
>>     resource in the destructor which is not free.  The path to
>>     _Internal_error_Occurred() should show the problem.
>>
>> Sebastian, I follow the calls in gdb, and find the error is:
>>   Program received signal SIGINT, Interrupt.
>> 0x020168b8 in _Internal_error_Occurred (the_source=INTERNAL_ERROR_**CORE,
>> is_internal=true, the_error=5)
>>      at ../../../../../../rtems/c/src/**../../cpukit/score/src/interr.**
>> c:58
>> 58      _CPU_Fatal_halt( the_error );
>>
>
> What is the call stack here?
>
> The error=5 is probably INTERNAL_ERROR_THREAD_EXITTED (see also
> Internal_errors_Core_list).  How did you terminate the task?
>
>
> --
> Sebastian Huber, embedded brains GmbH
>
> Address : Obere Lagerstr. 30, D-82178 Puchheim, Germany
> Phone   : +49 89 18 90 80 79-6
> Fax     : +49 89 18 90 80 79-9
> E-Mail  : sebastian.huber at embedded-**brains.de<sebastian.huber at embedded-brains.de>
> PGP     : Public key available on request.
>
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>
>
> ______________________________**_________________
> rtems-devel mailing list
> rtems-devel at rtems.org
> http://www.rtems.org/mailman/**listinfo/rtems-devel<http://www.rtems.org/mailman/listinfo/rtems-devel>
>

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?

-- 
Best wishes!
Zhongwei Yao
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20120709/b08463ee/attachment.html>


More information about the devel mailing list