您正在从Perl 5.39.5查看此文档的版本。这是Perl的开发版本。
测试2::手动::解剖::IPC-IPC系统手动。
本文件描述了IPC系统。
#什么是IPC系统
IPC系统通过加载激活测试2::IPC。这使集线器能够识别进程/线程,并根据需要将事件转发给父进程/线程。
#IPC系统如何影响一切?
测试2::API和测试2::API::实例如果测试2::IPC在初始化全局状态之前加载。IPC驱动程序将主要以全局状态启动和存储。
如果初始化了IPC驱动程序,则所有集线器都将通过引用驱动程序实例进行初始化。如果集线器具有IPC驱动程序实例,它将使用它将事件转发给父进程和线程。
#IPC驾驶员做什么?
一个测试2::IPC::驱动程序提供了一种将事件数据发送到目标进程+线程+中心(或全局发送)的方法。驱动程序还必须为进程/线程/集线器提供一种读取已发送给它的任何挂起事件的方法。
#默认IPC驱动程序如何工作?
默认的IPC驱动程序为测试2::API::驱动程序::文件。此默认驱动程序在初始化时,通过创建临时目录启动。任何时候需要将事件发送到另一个进程/线程/中心时,都会使用可存储。将目标进程、线程和中心作为文件名的一部分写入文件。所有中心将定期检查并处理未决IPC事件。
使用一小块SHM对该驱动程序进行了进一步优化。每当通过IPC发送新事件时,shm都会更新为新值。除非自上次轮询以来shm值发生了更改,否则集线器不会费心检查新的IPC事件。这样做的结果是,IPC系统速度惊人,并且在没有未决事件时不会浪费时间轮询硬盘。
#另请参阅
测试2::手动-手册的主要索引。
Test2 Manual的源代码存储库可以在https://github.com/Test-More/Test2-Suite/.
#维护人员
- #乍得格拉姆<exodist@cpan.org>
-
- #乍得格拉姆<exodist@cpan.org>
-
2018 Chad Granum版权所有<exodist@cpan.org>.
这个程序是自由软件;您可以重新发布它和/或使用与Perl本身相同的条款对其进行修改。
请参见http://dev.perl.org/许可证/