Skip to content
Snippets Groups Projects
Select Git revision
  • 2.7.1
  • main default
  • 2.6.y
  • 2.4.y
  • debian-dch-always-online
  • 1.6.y
  • 2.0.y
  • 2.2.y
  • 1.2.y
  • 1.8.2.z
  • 1.8.y
  • debian/jessie
  • 1.4.y
  • ubuntu/master
  • ubuntu/trusty
  • 1.7.y
  • test-runner
  • 1.5.y
  • 1.3.y
  • debian/wheezy
  • attic/cmake
  • 2.7.2
  • 2.6.1
  • 2.7.0
  • 2.6.0
  • 2.5.6
  • 2.5.5
  • 2.4.9
  • 2.5.3ubuntu0.1
  • 2.5.4
  • 2.4.8
  • 2.5.3
  • 1.6.17
  • 1.6.16
  • 2.4.7
  • 2.5.2
  • 2.3.9ubuntu0.2
  • 2.4.6
  • 2.5.1
  • 2.0.9
40 results

install-progress.h

Blame
  • Forked from APT Developers / apt
    965 commits behind the upstream repository.
    Zhang Boyang's avatar
    Zhang Boyang authored
    Previously, status line is redrawn in signal handler. However, the
    drawing code make heavy use of std::string and other syscalls, which may
    not be async-signal-safe. This will cause deadlock, overwritten errno,
    even silent memory corruption.
    
    This patch implemented Anders Kaseorg's idea. The signal handler will
    only set a flag, which is async-signal-safe, and actual redrawing will
    be deferred to PackageManagerFancy::Pulse().
    
    Note that the virtual function PackageManagerFancy::Pulse() already
    exists in base class but newly overridden in PackageManagerFancy, so the
    ABI compatibility should be OK. However, existing compiled programs may
    not aware of this new function and continue to use old Pulse() if
    compiler had done heavy optimization. Fortunately this is not too
    harmful because this will only cause status line not redrawing, which
    may consider acceptable.
    
    Closes: #852757
    ec278531
    History
    install-progress.h 5.51 KiB