Ignore:
Timestamp:
Apr 15, 2011, 2:57:02 AM (14 years ago)
Author:
dmik
Message:

kernel32: Removed the dirty hack that would reset the exception handler chain before calling DosExit(). This prevented exception handlers in the chain from being called at thread termination and performing the necessary cleanup which is sometimes vital (like releasing locked resources etc).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/exceptions.cpp

    r21618 r21619  
    707707    RestoreOS2FS();
    708708
    709     SetExceptionChain((ULONG)-1);
    710709    DosExit(EXIT_PROCESS, 666);
    711710}
     
    718717    RestoreOS2FS();
    719718
    720     SetExceptionChain((ULONG)-1);
    721719    DosExit(EXIT_THREAD, 666);
    722720}
     
    12631261        PrintExceptionChain();
    12641262#endif
    1265         SetExceptionChain((ULONG)-1);
    12661263        goto continuesearch;
    12671264
     
    16721669
    16731670            case XCPT_SIGNAL_KILLPROC:  /* resolve signal information */
    1674                 SetExceptionChain((ULONG)-1);
    16751671                goto continuesearch;
    16761672        }
     
    18811877//*****************************************************************************
    18821878//*****************************************************************************
    1883 void SetOS2ExceptionChain(ULONG val)
    1884 {
    1885  USHORT sel = GetFS();
    1886 
    1887     SetExceptionChain(val);
    1888     SetFS(sel);
    1889 }
    1890 //*****************************************************************************
    1891 //*****************************************************************************
    18921879int _System CheckCurFS()
    18931880{
Note: See TracChangeset for help on using the changeset viewer.