Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-9868

[taskmgr] multi-threaded drawing issues PATCH

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Trivial
    • 0.4.0
    • Applications
    • ros TRUNK r68244

    Description

      This is 100% in taskmgr.exe binary, not something deep down the stack, as it happens too when running ros taskmgr.exe on WinXP.

      When you do a single mouse-click right in the empty space next to menubar
      (file/options/view../?)
      the status bar entry "zugesicherter Speicher" gets invisible and is repainted a second afterwards (may happen also when leaving menu).

      It should stay visible in this case.
      react-2015-06-23-taskmgr-GUI-glitch.webm

      In other situations, e.g: opening taskmgr: other columns of the status bar sometimes were not properly updated in-time (CPU-usage/process-count).

      Here is a patch that fixes those issues:
      fix-taskmgr-status-bar-redraw-issues-and-cleanup.patch
      Full name:Joachim Henze

      Reason was that the Single-Responsibility-principle was violated within the code. Status bar was refreshed from 3 different threads. The patch moves the responsibility completely to 1 of these threads when not in menu-state. I chose the one from performance page, because it already queried all needed informations beforehand. Additionally an explicit refresh is requested when leaving the menu-state.
      The fix also saves lines of code and some memory as well.

      ( Perspectively I suggest merging the remaining update threads into a single one, that is aware of which page is currently opened and queries all the needed informations.... I think MS is doing the same.... )

      Attachments

        Activity

          People

            AmineKhaldi AmineKhaldi
            reactosfanboy reactosfanboy
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: