Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IPC category #56

Open
Grinnz opened this issue Aug 2, 2019 · 8 comments · May be fixed by #77
Open

IPC category #56

Grinnz opened this issue Aug 2, 2019 · 8 comments · May be fixed by #77

Comments

@Grinnz
Copy link
Contributor

Grinnz commented Aug 2, 2019

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
Copy link

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
Copy link

autarch commented Sep 12, 2019

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
Copy link
Contributor Author

Grinnz commented Sep 12, 2019

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

@Grinnz
Copy link
Contributor Author

Grinnz commented Sep 12, 2019

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

@ttkciar
Copy link

ttkciar commented Sep 13, 2019

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
Copy link
Contributor Author

Grinnz commented Sep 14, 2019

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
Copy link

ttkciar commented Sep 14, 2019

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.

Grinnz added a commit to Grinnz/task-kensho that referenced this issue Jul 3, 2021
@Grinnz Grinnz linked a pull request Jul 3, 2021 that will close this issue
@davebaird
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants