disable thread dispatch problem
sebastian.huber at embedded-brains.de
Mon Jul 9 10:38:16 UTC 2012
On 07/09/2012 08:28 AM, Ashi wrote:
> 2012/7/6 Sebastian Huber <sebastian.huber at embedded-brains.de
> <mailto: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?
> 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
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel