Changeset 85734b3 in rtems


Ignore:
Timestamp:
08/31/98 22:53:42 (25 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
de9edc4
Parents:
90c60f7
Message:

Patch from Eric Norum <eric@…>:

I think I figured out why rtems_panic was locking up instead of
shutting down the executive and returning to the code that called
boot_card().

Later on there is code to print some messages on the standard error
stream, a recursive call back to rtems_verror (through rtems_error)
and finally a call to _exit().

I think that the _Thread_Disable_dispatch() is preventing the final
context switch back to the boot_card() code. Does this sound right
to you?

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • c/src/exec/libcsupport/src/error.c

    r90c60f7 r85734b3  
    116116    if (error_flag & RTEMS_ERROR_PANIC)
    117117    {
    118         rtems_panic_in_progress++;
    119 
    120         /* disable task switches */
    121         _Thread_Disable_dispatch();
     118        if (rtems_panic_in_progress++)
     119            _Thread_Disable_dispatch();       /* disable task switches */
    122120
    123121        /* don't aggravate things */
  • c/src/lib/libc/error.c

    r90c60f7 r85734b3  
    116116    if (error_flag & RTEMS_ERROR_PANIC)
    117117    {
    118         rtems_panic_in_progress++;
    119 
    120         /* disable task switches */
    121         _Thread_Disable_dispatch();
     118        if (rtems_panic_in_progress++)
     119            _Thread_Disable_dispatch();       /* disable task switches */
    122120
    123121        /* don't aggravate things */
  • c/src/lib/libmisc/error/error.c

    r90c60f7 r85734b3  
    116116    if (error_flag & RTEMS_ERROR_PANIC)
    117117    {
    118         rtems_panic_in_progress++;
    119 
    120         /* disable task switches */
    121         _Thread_Disable_dispatch();
     118        if (rtems_panic_in_progress++)
     119            _Thread_Disable_dispatch();       /* disable task switches */
    122120
    123121        /* don't aggravate things */
  • c/src/libmisc/error/error.c

    r90c60f7 r85734b3  
    116116    if (error_flag & RTEMS_ERROR_PANIC)
    117117    {
    118         rtems_panic_in_progress++;
    119 
    120         /* disable task switches */
    121         _Thread_Disable_dispatch();
     118        if (rtems_panic_in_progress++)
     119            _Thread_Disable_dispatch();       /* disable task switches */
    122120
    123121        /* don't aggravate things */
  • cpukit/libcsupport/src/error.c

    r90c60f7 r85734b3  
    116116    if (error_flag & RTEMS_ERROR_PANIC)
    117117    {
    118         rtems_panic_in_progress++;
    119 
    120         /* disable task switches */
    121         _Thread_Disable_dispatch();
     118        if (rtems_panic_in_progress++)
     119            _Thread_Disable_dispatch();       /* disable task switches */
    122120
    123121        /* don't aggravate things */
Note: See TracChangeset for help on using the changeset viewer.