Changeset 1335 for trunk/dll/comp.c


Ignore:
Timestamp:
Dec 13, 2008, 12:49:02 AM (17 years ago)
Author:
Steven Levine
Message:

Ticket 26: Add exception handlers to all threads using xbeginthread

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/comp.c

    r1304 r1335  
     1
    12/***********************************************************************
    23
     
    5758                DIRCNRDATA struct) into a new struct: DETAILS_SETTINGS.
    5859  08 Sep 08 SHL Avoid aliased pszLongName pointer in ActionCnrThread IDM_MOVE
     60  10 Dec 08 SHL Integrate exception handler support
    5961
    6062***********************************************************************/
     
    6466#include <share.h>
    6567#include <io.h>
    66 #include <process.h>                    // _beginthread
     68// #include <process.h>                 // _endthread
    6769
    6870#define INCL_DOS
     
    111113#include "notebook.h"                   // External compare/dircompare
    112114#include "commafmt.h"                   // CommaFmtULL
    113 #include "fortify.h"                    // 06 May 08 SHL
     115#include "fortify.h"                    // 06 May 08 SHL added
     116#include "excputil.h"                   // xbeginthread
    114117
    115118typedef struct
     
    385388        break;
    386389      }
    387       if (_beginthread(CompareFilesThread, NULL, 65536, (PVOID)fc) == -1) {
    388         Runtime_Error(pszSrcFile, __LINE__,
    389                       GetPString(IDS_COULDNTSTARTTHREADTEXT));
     390      if (xbeginthread(CompareFilesThread,
     391                       65536,
     392                       fc,
     393                       pszSrcFile,
     394                       __LINE__) == -1)
     395      {
    390396        WinDismissDlg(hwnd, 0);
    391397      }
     
    15151521    Fortify_LeaveScope();
    15161522#    endif
    1517     _endthread();
     1523    return;                             // 10 Dec 08 SHL was _endthread
    15181524  }
    15191525
     
    26962702        *forthread = *cmp;
    26972703        forthread->cmp = cmp;
    2698         if (_beginthread(FillCnrsThread, NULL, 122880, (PVOID)forthread) ==
    2699             -1) {
    2700           Runtime_Error(pszSrcFile, __LINE__,
    2701                         GetPString(IDS_COULDNTSTARTTHREADTEXT));
     2704        if (xbeginthread(FillCnrsThread,
     2705                         122880,
     2706                         forthread,
     2707                         pszSrcFile,
     2708                         __LINE__) == -1)
     2709        {
    27022710          WinDismissDlg(hwnd, 0);
    27032711          free(forthread);
     
    29812989              strcpy(sf->dirname, cmp->rightdir);
    29822990            sf->recurse = cmp->includesubdirs;
    2983             if (_beginthread(StartSnap, NULL, 65536, (PVOID)sf) == -1) {
    2984               Runtime_Error(pszSrcFile, __LINE__,
    2985                             GetPString(IDS_COULDNTSTARTTHREADTEXT));
     2991            if (xbeginthread(StartSnap,
     2992                             65536,
     2993                             sf,
     2994                             pszSrcFile,
     2995                             __LINE__) == -1)
     2996            {
    29862997              free(sf);
    29872998            }
     
    30323043          forthread->cmp = cmp;
    30333044          forthread->action = SHORT1FROMMP(mp1);
    3034           if (_beginthread(ActionCnrThread, NULL, 122880, (PVOID)forthread)
    3035               == -1) {
    3036             Runtime_Error(pszSrcFile, __LINE__,
    3037                           GetPString(IDS_COULDNTSTARTTHREADTEXT));
     3045          if (xbeginthread(ActionCnrThread,
     3046                           122880,
     3047                           forthread,
     3048                           pszSrcFile,
     3049                           __LINE__) == -1)
     3050          {
    30383051            free(forthread);
    30393052          }
     
    31553168          forthread->cmp = cmp;
    31563169          forthread->action = SHORT1FROMMP(mp1);
    3157           if (_beginthread(SelectCnrsThread, NULL, 65536, (PVOID)forthread)
    3158               == -1) {
    3159             Runtime_Error(pszSrcFile, __LINE__,
    3160                           GetPString(IDS_COULDNTSTARTTHREADTEXT));
     3170          if (xbeginthread(SelectCnrsThread,
     3171                           65536,
     3172                           forthread,
     3173                           pszSrcFile,
     3174                           __LINE__) == -1)
     3175          {
    31613176            free(forthread);
    31623177          }
Note: See TracChangeset for help on using the changeset viewer.