MCE::Channel::ThreadsFast(3pm)

MCE::Channel::ThreadsFast3pm

Fast channel for producer(s) and many consumers

Version

This document describes MCE::Channel::ThreadsFast version 1.901

Overview

A channel class providing queue-like and two-way communication for threads only. Locking is handled using threads::shared.

This is similar to MCE::Channel::Threads but optimized for non-Unicode strings only. The main difference is that this module lacks freeze-thaw serialization. Non-string arguments become stringified; i.e. numbers and undef.

The API is described in MCE::Channel with the sole difference being "send" and "send2" handle one argument.

Current module available since MCE 1.877.

new
 use MCE::Channel;
 # The default is tuned for one producer and many consumers.
 my $chnl_a = MCE::Channel->new( impl => 'ThreadsFast' );
 # Specify the 'mp' option for safe use by two or more producers
 # sending or receiving on the left side of the channel (i.e.
 # ->enqueue/->send or ->recv2/->recv2_nb).
 my $chnl_b = MCE::Channel->new( impl => 'ThreadsFast', mp => 1 );

Queue-like behavior

enqueue
dequeue
dequeue_nb
end

Two-way IPC - producer to consumer

send
recv
recv_nb

Two-way IPC - consumer to producer

send2
recv2
recv2_nb

Limitations

The t/04_channel_threads tests are disabled on Unix platforms for Perl less than 5.10.1. Basically, the MCE::Channel::ThreadsFast implementation is not supported on older Perls unless the OS vendor applied upstream patches (i.e. works on RedHat/CentOS 5.x running Perl 5.8.x).

Releases

2 releases since Debian 12 (Bookworm); the text changed 1 time.

  1. 12
  2. 13

Author

Mario E. Roy, <marioeroy AT gmail DOT com>

From libmce-perl 1.901-1 in Debian 13 (Trixie). Parsed by carta from the page's man source.