disable thread dispatch problem

Joel Sherrill joel.sherrill at OARcorp.com
Mon Jul 9 14:58:32 UTC 2012


Likely dispatching was still disabled and you returned to the thread
body without scheduling/dispatching to another thread. Your
thread thought it was deleted but really continued past the
pthread_exit() or rtems_task_delete() call.

You must have a Classic API task which fell off the bottom of its
body and returned. If the test is over, you need to exit().

On 07/09/2012 07:32 AM, Ashi wrote:
>
>
> 2012/7/9 Sebastian Huber <sebastian.huber at embedded-brains.de 
> <mailto: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
>         <mailto:sebastian.huber at embedded-brains.de>
>         <mailto: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?
>                 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?
>
> Hi, Sebastian, the call stack is:
>
> // #0  0x020168bc 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
> #1  0x0202ae58 in _Thread_Handler () at 
> ../../../../../../rtems/c/src/../../cpukit/score/src/threadhandler.c:197
> #2  0x0202acb0 in _Thread_Handler () at 
> ../../../../../../rtems/c/src/../../cpukit/score/src/threadhandler.c:89
>
> and the info local shows:
> level = 4198629
>
>     The error=5 is probably INTERNAL_ERROR_THREAD_EXITTED (see also
>     Internal_errors_Core_list).  How did you terminate the task?
>
> the task is terminated by Ctrl+C in sparc-rtems-gdb.
> However, as I said in my last post, the problem is gone when I add 
> _Thread_Enable_dispatch() at the end of each while iteration...is it 
> proper?
>
>
>     -- 
>     Sebastian Huber, embedded brains GmbH
>
>     Address : Obere Lagerstr. 30, D-82178 Puchheim, Germany
>     Phone   : +49 89 18 90 80 79-6 <tel:%2B49%2089%2018%2090%2080%2079-6>
>     Fax     : +49 89 18 90 80 79-9 <tel:%2B49%2089%2018%2090%2080%2079-9>
>     E-Mail  : sebastian.huber at embedded-brains.de
>     <mailto: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 <mailto:rtems-devel at rtems.org>
>     http://www.rtems.org/mailman/listinfo/rtems-devel
>
>
>
>
> -- 
> Best wishes!
> Zhongwei Yao
>


-- 
Joel Sherrill, Ph.D.             Director of Research&   Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
     Support Available             (256) 722-9985


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20120709/1ff37de6/attachment-0001.html>


More information about the devel mailing list