EnlightenedPerlOrganisation / task-kensho

A Glimpse at an Enlightned Perl Distribution
http://search.cpan.org/dist/Task-Kensho
Other
71 stars 23 forks source link

IPC category #56

Open Grinnz opened 5 years ago

Grinnz commented 5 years ago

An IPC category would be useful for recommendations on modules to handle running and managing processes. IPC::Run, IPC::Run3, IPC::System::Simple, and maybe even IO::Async::Process or POE::Wheel::Run.

simcop2387 commented 5 years ago

Should this also consider things like IPC::Shm and others that can be used to setup a channel between two processes that were initially unrelated?

autarch commented 5 years ago

IPC::Run3 is my go to module when I need something more complex than just calling system or exec.

I'd also add Parallel::ForkManager which is a really quick, easy way to speed up many programs.

Grinnz commented 5 years ago

I think that Parallel::ForkManager, similarly to MCE from #10 would fit better in the Async category.

Grinnz commented 5 years ago

For IPC::Shm, I think it would be appropriate, I am just not sure about recommending it.

ttkciar commented 5 years ago

These modules sound like they are more about managing processes than facilitating interprocess communication. The pipes used to shuffle data to/from those processes are of course IPC, but they seem like their secondary focus.

Maybe put these modules into a "Multiprocessing" category and fill the "IPC" category with modules which facilitate signals, shared memory, message-passing, etc?

Grinnz commented 5 years ago

I agree the IPC name isn't ideal. It just happens to be the namespace used for that on CPAN. Maybe something along the lines of "Running Commands", that's not great but can't think of anything better. I think it should be distinct from process management which is more like what Parallel::ForkManager and such do.

ttkciar commented 5 years ago

You're totally right that CPAN (mis)uses the IPC:: namespace for process-wrangling. It's probably worth continuing in the same vein to remain consistent.

davebaird commented 3 years ago

System::Command and Proc::Background provide very convenient and friendly object wrappers to system commands that probably cover 90% of use cases.