Ticket #1872: 0001-Replaced-WMI-process-enumeration-with-the-EnumProces.patch

File 0001-Replaced-WMI-process-enumeration-with-the-EnumProces.patch, 1.4 KB (added by ETZel, 14 years ago)
  • deluge/core/daemon.py

    From ff618a541a0b45b84b2495b2f87430ce28baf318 Mon Sep 17 00:00:00 2001
    From: Nikita Nemkin <nikita@nemkin.ru>
    Date: Thu, 2 Jun 2011 01:19:44 +0600
    Subject: [PATCH] Replaced WMI process enumeration with the EnumProcesses API call.
     (Shorter, faster, does not depend on pythoncom.)
    
    ---
     deluge/core/daemon.py |    9 ++-------
     1 files changed, 2 insertions(+), 7 deletions(-)
    
    diff --git a/deluge/core/daemon.py b/deluge/core/daemon.py
    index 0343feb..c6e63a8 100644
    a b def __init__(self, options=None, args=None, classic=False):  
    6666
    6767            def process_running(pid):
    6868                if deluge.common.windows_check():
    69                     # Do some fancy WMI junk to see if the PID exists in Windows
    70                     from win32com.client import GetObject
    71                     def get_proclist():
    72                         WMI = GetObject('winmgmts:')
    73                         processes = WMI.InstancesOf('Win32_Process')
    74                         return [process.Properties_('ProcessID').Value for process in processes]
    75                     return pid in get_proclist()
     69                    import win32process
     70                    return pid in win32process.EnumProcesses()
    7671                else:
    7772                    # We can just use os.kill on UNIX to test if the process is running
    7873                    try: