Hi Jamie,

I found another issue specific to the 'win32' platform. I changed the code and debugging and running your test script works over here. See attached file for changes to be applied.

Regards,
Detlev

Am 16.11.23 um 23:39 schrieb Jamie Riotto:
Ok, so I have Eric7 loaded into a virtual environment, 'eric7_qt6_venv', which has eric7-23.11(rev.e075C8fe07fd). I went to c:\Users\jamie\eric7_qt6_venv\Lib\site-packages\eric7\Debugger\DebuggerInterfacePython.py anc
commented out the line:

#self.__autoContinued.append(debuggerId)

When I reran the script I submitted, I had the same behavior as before, i.e. no change. Did I miss something?
- j

On Thu, Nov 16, 2023 at 10:28 AM Detlev Offenbach <det...@die-offenbachs.de> wrote:

    Hi Jaimie,

    it is actually a one line change. If you visit
    https://hg.die-offenbachs.homelinux.org/eric/rev/1e498581a094 you
    will see, which line needs to be removed.

    Regards,
    Detlev

    Am 16.11.23 um 19:10 schrieb Jamie Riotto:
    Detlev,
    Excuse my ignorance, but I'm not sure how to obtain a changeset
    through mercurial. Is there an easy way?
    - j

    On Thu, Nov 16, 2023 at 9:12 AM Detlev Offenbach
    <det...@die-offenbachs.de> wrote:

        Hi,

        I just committed changeset 1e498581a094, which should fix the
        issue. Please give it a try and let me know. Otherwise, it
        will be contained in release 23.12 as is.

        Regards, Detlev

        Am 15.11.23 um 16:33 schrieb Jamie Riotto:
        import multiprocessing
        from time import time
        import random


        def parallelSim(job_queue, output_queue):
            for data in iter(job_queue.get, 'STOP'):
                choices = random.choices(data, k=10)
                total = 0
                for i, c in enumerate(choices):
                    sign = 1 if i%2==0 else -1
                    total += c * c * sign

                output_queue.put(total)

        if __name__ == '__main__':
            start_time = time()

            job_queue = multiprocessing.Queue()
            output_queue = multiprocessing.Queue()

            # create some data
            data = list(range(1, 1000))

            # DEBUG
            #numCPUs = multiprocessing.cpu_count()
            numCPUs = 4
            iterations = 10
            numjobs = numCPUs * iterations

            # load up the job queue
            for sim in range(numjobs):
                job_queue.put(data)

            # add Stops to the job queue
            for x in range(numCPUs):
                job_queue.put('STOP')

            serialDebug = False
            if serialDebug is True:
                # Debug the Parallel Process
                parallelSim(job_queue, output_queue)

            else:
                # parallelize processing using a pool of processes
                for i in range(numCPUs):
        multiprocessing.Process(target=parallelSim, args=(job_queue,
        output_queue)).start()

            results = []
            for r in range(numjobs):
                results.append(output_queue.get())

            avg_result = sum(results) / numjobs
            print("")
            print(f'Average Results = {avg_result}')

            end_time = time()
            elapsed = end_time - start_time
            print(f"Finished in: {elapsed:.3f} seconds")

-- Detlev Offenbach
        det...@die-offenbachs.de

-- Detlev Offenbach
    det...@die-offenbachs.de

--
Detlev Offenbach
det...@die-offenbachs.de

diff -r 1e498581a094 src/eric7/DebugClients/Python/MultiProcessDebugExtension.py
--- a/src/eric7/DebugClients/Python/MultiProcessDebugExtension.py	Thu Nov 16 18:10:59 2023 +0100
+++ b/src/eric7/DebugClients/Python/MultiProcessDebugExtension.py	Fri Nov 17 13:57:27 2023 +0100
@@ -152,7 +152,8 @@
         """
         Function replacing the 'spawnl' functions of the os module.
         """
-        args = patchArguments(_debugClient, args)
+        if _shallPatch():
+            args = patchArguments(_debugClient, args)
         return getattr(os, originalName)(mode, path, *args)
 
     return newSpawnl
@@ -177,7 +178,8 @@
         """
         Function replacing the 'spawnv' functions of the os module.
         """
-        args = patchArguments(_debugClient, args)
+        if _shallPatch():
+            args = patchArguments(_debugClient, args)
         return getattr(os, originalName)(mode, path, args)
 
     return newSpawnv
@@ -202,7 +204,8 @@
         """
         Function replacing the 'spawnve' functions of the os module.
         """
-        args = patchArguments(_debugClient, args)
+        if _shallPatch():
+            args = patchArguments(_debugClient, args)
         return getattr(os, originalName)(mode, path, args, env)
 
     return newSpawnve
@@ -229,7 +232,8 @@
         """
         Function replacing the 'posix_spawn' functions of the os module.
         """
-        argv = patchArguments(_debugClient, argv)
+        if _shallPatch():
+            argv = patchArguments(_debugClient, argv)
         return getattr(os, originalName)(path, argv, env, **kwargs)
 
     return newPosixSpawn
@@ -362,9 +366,9 @@
             import _subprocess  # __IGNORE_WARNING_I10__
         except ImportError:
             import _winapi as _subprocess  # __IGNORE_WARNING_I10__
-        return getattr(_subprocess, originalName)(
-            appName, patchArgumentStringWindows(_debugClient, cmdline), *args
-        )
+        if _shallPatch():
+            cmdline = patchArgumentStringWindows(_debugClient, cmdline)
+        return getattr(_subprocess, originalName)(appName, cmdline, *args)
 
     return newCreateProcess
 

Attachment: OpenPGP_0xBD1F26A5DA8A6150.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to