psutil v5.6.0 Release Notes

Release Date: 2019-03-05 // about 5 years ago
  • 2019-03-05

    โœจ Enhancements

    • ๐Ÿ 1379_, [Windows]: Process.suspend()_ and Process.resume()_ now use NtSuspendProcess and NtResumeProcess instead of stopping/resuming all threads of a process. This is faster and more reliable (aka this is what ProcessHacker does).
    • ๐Ÿ 1420_, [Windows]: in case of exception disk_usage()_ now also shows the path name.
    • ๐Ÿ 1422_, [Windows]: Windows APIs requiring to be dynamically loaded from DLL libraries are now loaded only once on startup (instead of on per function call) significantly speeding up different functions and methods.
    • ๐Ÿ 1426_, [Windows]: PAGESIZE and number of processors is now calculated on startup.
    • 1428_: in case of error, the traceback message now shows the underlying C function called which failed.
    • 1433_: new Process.parents()_ method. (idea by Ghislain Le Meur)
    • 1437_: pids()_ are returned in sorted order.
    • 0๏ธโƒฃ 1442_: Python 3 is now the default interpreter used by Makefile.

    ๐Ÿ› Bug fixes

    • 1353_: process_iter()_ is now thread safe (it rarely raised TypeError).
    • ๐Ÿ 1394_, [Windows], [critical]: Process.name()_ and Process.exe()_ may erroneously return "Registry" or fail with "[Error 0] The operation completed successfully". QueryFullProcessImageNameW is now used instead of GetProcessImageFileNameW in order to prevent that.
    • 1411_, [BSD]: lack of Py_DECREF could cause segmentation fault on process instantiation.
    • ๐Ÿ 1419_, [Windows]: Process.environ()_ raises NotImplementedError when querying a 64-bit process in 32-bit-WoW mode. Now it raises AccessDenied_.
    • 1427_, [OSX]: Process.cmdline()_ and Process.environ()_ may erroneously raise OSError on failed malloc().
    • ๐Ÿ 1429_, [Windows]: SE DEBUG was not properly set for current process. It is now, and it should result in less AccessDenied_ exceptions for low PID processes.
    • ๐Ÿ 1432_, [Windows]: Process.memory_info_ex()_'s USS memory is miscalculated because we're not using the actual system PAGESIZE.
    • 1439_, [NetBSD]: Process.connections()_ may return incomplete results if using Process.oneshot()_.
    • ๐Ÿ‘ป 1447_: original exception wasn't turned into NoSuchProcess_ / AccessDenied_ exceptions when using Process.oneshot()_ context manager.

    Incompatible API changes

    • 1291_, [OSX], [critical]: Process.memory_maps()_ was removed because inherently broken (segfault) for years.