Perl Diver 2.31
Main Environment Variables Perl Default Values Perl Config - Summary Perl Config - Full Installed Modules List Directory uptime Docs

Module Documentation
Details and documentation about a specific module, including version and documentation (if available). Note that while links to perldoc.com and search.cpan.org are provided, the module may be part of a larger distribution. If you reach a File Not Found page on either site, please try the parent module.

Test2::Manual::Anatomy::IPC

Name Test2::Manual::Anatomy::IPC
Version 0.000144
Located at /usr/local/share/perl5
File /usr/local/share/perl5/Test2/Manual/Anatomy/IPC.pm
Is Core No
Search CPAN for this module Test2::Manual::Anatomy::IPC
Documentation Test2::Manual::Anatomy::IPC
Module Details Test2::Manual::Anatomy::IPC

NAME

Test2::Manual::Anatomy::IPC - Manual for the IPC system.


DESCRIPTION

This document describes the IPC system.


WHAT IS THE IPC SYSTEM

The IPC system is activated by loading the Test2::IPC manpage. This makes hubs process/thread aware, and makes them forward events along to the parent process/thread as necessary.


HOW DOES THE IPC SYSTEM EFFECT EVERYTHING?

the Test2::API manpage and the Test2::API::Instance manpage have some behaviors that trigger if the Test2::IPC manpage is loaded before the global state is initialized. Mainly an IPC driver will be initiated and stored in the global state.

If an IPC driver is initialized then all hubs will be initialized with a reference to the driver instance. If a hub has an IPC driver instance it will use it to forward events to parent processes and threads.


WHAT DOES AN IPC DRIVER DO?

An the Test2::IPC::Driver manpage provides a way to send event data to a destination process+thread+hub (or to all globally). The driver must also provide a way for a process/thread/hub to read in any pending events that have been sent to it.


HOW DOES THE DEFAULT IPC DRIVER WORK?

The default IPC driver is the Test2::API::Driver::Files manpage. This default driver, when initialized, starts by creating a temporary directory. Any time an event needs to be sent to another process/thread/hub, the event will be written to a file using Storable. The file is written with the destination process, thread, and hub as part of the filename. All hubs will regularly check for pending IPC events and will process them.

This driver is further optimized using a small chunk of SHM. Any time a new event is sent via IPC the shm is updated to have a new value. Hubs will not bother checking for new IPC events unless the shm value has changed since their last poll. A result of this is that the IPC system is surprisingly fast, and does not waste time polling the hard drive when there are no pending events.


SEE ALSO

the Test2::Manual manpage - Primary index of the manual.


SOURCE

The source code repository for Test2-Manual can be found at https://github.com/Test-More/Test2-Suite/.


MAINTAINERS

Chad Granum


AUTHORS

Chad Granum <exodist@cpan.org>Chad Granum


COPYRIGHT

Copyright 2018 Chad Granum <exodist@cpan.org>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://dev.perl.org/licenses/

Perl Diver brought to you by ScriptSolutions.com © 1997- 2024