Changeset 1447 for trunk/dll/treecnr.c


Ignore:
Timestamp:
Jul 23, 2009, 11:16:05 PM (16 years ago)
Author:
Gregg Young
Message:

Add an reposition semaphore releases for Tree scan code to avoid hangs; Bypass DosGetMessage for HIMEM builds.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/treecnr.c

    r1446 r1447  
    857857      DosRequestMutexSem(hmtFillingTreeCnr, SEM_INDEFINITE_WAIT);
    858858      FillTreeCnr(dcd->hwndCnr, dcd->hwndParent);
    859       DosReleaseMutexSem(hmtFillingTreeCnr);
    860859      if (fOkayMinimize) {
    861860        PostMsg(dcd->hwndCnr, UM_MINIMIZE, MPVOID, MPVOID);
     
    19041903            DosBeep(50, 100);
    19051904          if (hwndStatus)
    1906             WinSetWindowText(hwndStatus, GetPString(IDS_RESCANSUGTEXT));
     1905            WinSetWindowText(hwndStatus, GetPString(IDS_RESCANSUGTEXT));
     1906          DosReleaseMutexSem(hmtFillingTreeCnr);
    19071907          return 0;
    19081908        }
     
    19231923              }
    19241924            } // for
    1925             RemoveCnrItems(hwnd, pciP, 1, CMA_FREE | CMA_INVALIDATE);
     1925            RemoveCnrItems(hwnd, pciP, 1, CMA_FREE | CMA_INVALIDATE);
     1926            DosReleaseMutexSem(hmtFillingTreeCnr);
    19261927            return 0;
    19271928          }
     
    19941995            UnFlesh(hwnd, pci);
    19951996            PostMsg(hwnd, UM_RESCAN, MPVOID, MPVOID);
    1996             PostMsg(hwnd, UM_SETUP2, MPFROMP(pci), MPFROMLONG(status));
     1997            PostMsg(hwnd, UM_SETUP2, MPFROMP(pci), MPFROMLONG(status));
     1998            DosReleaseMutexSem(hmtFillingTreeCnr);
    19971999            return 0;
    19982000          }
     
    20162018            if ((shiftstate & (KC_CTRL | KC_ALT)) == (KC_CTRL | KC_ALT)) {
    20172019              PostMsg(hwnd,
    2018                       WM_COMMAND, MPFROM2SHORT(IDM_SHOWALLFILES, 0), MPVOID);
     2020                      WM_COMMAND, MPFROM2SHORT(IDM_SHOWALLFILES, 0), MPVOID);
     2021              DosReleaseMutexSem(hmtFillingTreeCnr);
    20192022              return 0;
    20202023            }
    20212024            if ((shiftstate & (KC_CTRL | KC_SHIFT)) == (KC_CTRL | KC_SHIFT)) {
    2022               OpenObject(pci->pszFileName, Settings, dcd->hwndFrame);
     2025              OpenObject(pci->pszFileName, Settings, dcd->hwndFrame);
     2026              DosReleaseMutexSem(hmtFillingTreeCnr);
    20232027              return 0;
    20242028            }
    20252029            if (!(shiftstate & (KC_CTRL | KC_SHIFT))) {
    20262030              if (!ParentIsDesktop(hwnd, dcd->hwndParent)) {
    2027                 if (FindDirCnrByName(pci->pszFileName, TRUE))
    2028                   return 0;
     2031                if (FindDirCnrByName(pci->pszFileName, TRUE)) {
     2032                  DosReleaseMutexSem(hmtFillingTreeCnr);
     2033                  return 0;
     2034                }
    20292035              }
    20302036            }
     
    20482054              }
    20492055              OpenObject(pci->pszFileName, s, dcd->hwndFrame);
     2056              DosReleaseMutexSem(hmtFillingTreeCnr);
    20502057              return 0;
    20512058            }
Note: See TracChangeset for help on using the changeset viewer.