Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Windows 10 and Win32::Process

by dasgar (Priest)
on Jun 27, 2018 at 13:37 UTC ( #1217506=note: print w/replies, xml ) Need Help??


in reply to Windows 10 and Win32::Process

But as fork does not exist under Windows...

Actually, you can use fork in Windows. However, Perl will emulate fork by using threads (see this note in perlport).

When I first was looking into doing things in parallel, I looked at fork and threads. I couldn't get my head wrapped around how to use fork, but I was understanding threads so I started using threads. Later I learned that on Windows, Perl uses threads to emulate fork so I stayed with threads.

I haven't had any issues using threads, but you do need to keep in mind that not all modules are thread safe. If you do use threads and want to use a worker threads model to limit the number of threads being used, you'll find Thread::Queue to be useful and probably threads::shared as well.

Another alternative you could consider is MCE, which I have not used. The module's author has helped folks here on PerlMonks with issues in using/learning MCE.

I am thinking of using the Win32::Process module...What makes me suspicious is that the version number is still 0.16...

A module that hasn't been updated in a long time does not necessarily mean that it has been neglected. Sometimes a module's author will reach a stage where he/she feels that the module is "complete" and not in need of updating. Although I have not used Win32::Process myself, I have seen some posts where folks are using/suggesting the module, so I wouldn't write off the use of that module just because it hasn't been updated in a while.

Replies are listed 'Best First'.
Re^2: Windows 10 and Win32::Process
by Veltro (Hermit) on Jun 27, 2018 at 14:16 UTC
    A module that hasn't been updated in a long time does not necessarily mean that it has been neglected...

    +1 for your answers and I absolutely agree with this reasoning. I just wish to note that unfortunately the last two times that I used Win32 to do something both functions were not working properly. It makes me careful using that module. Functions that did not work for me where killing a process and using the millisecond sleep.

      ... the last two times that I used Win32 to do something both functions were not working properly. ... Functions that did not work for me [were] ...

      Just to be clear, do I understand correctly that we're talking about some functions in the Win32::Process module?


      Give a man a fish:  <%-{-{-{-<

        No. It was just a general concern regards Win32 (and it's sub modules). I can't exactly remember anymore how I tried to kill the process. I used some method to pull the PID out of the system (edit: by name). But that was the method that failed. I looked in the core module and found out that a system command was used and that looks for some information that newer operating systems don't seem to display anymore. The sleep function that I was talking about is: Win32::Sleep

        edit: I did some further digging and I found one example:

        use strict ; use warnings ; use Win32::Process::Memory ; my $proc = Win32::Process::Memory->new({ name => 'notepad.exe' }); printf "Commited Memory = %X Bytes\n", $proc->get_memtotal ; __END__ Use of uninitialized value in lc at C:/Perl64/site/lib/Win32/Process/M +emory.pm line 38. ... Use of uninitialized value in lc at C:/Perl64/site/lib/Win32/Process/M +emory.pm line 38. Use of uninitialized value in subroutine entry at C:/Perl64/site/lib/W +in32/Process/Memory.pm line 59. Commited Memory = 0 Bytes

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1217506]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2021-09-22 20:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?