logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

MCE::Channel::Threads - Channel for producer(s) and many consumers

Author

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

perl v5.40.0                                       2025-01-11                         MCE::Channel::Threads(3pm)

Description

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

       The API is described in MCE::Channel.

       new
           use MCE::Channel;

           # The default is tuned for one producer and many consumers.
           my $chnl_a = MCE::Channel->new( impl => 'Threads' );

           # 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 => 'Threads', mp => 1 );

Limitations

       The  t/04_channel_threads  tests are disabled on Unix platforms for Perl less than 5.10.1. Basically, the
       MCE::Channel::Threads 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).

Name

       MCE::Channel::Threads - Channel for producer(s) and many consumers

Queue-Like Behavior

       enqueue
       dequeue
       dequeue_nb
       end

Two-Way Ipc - Consumer To Producer

       send2
       recv2
       recv2_nb

Two-Way Ipc - Producer To Consumer

       send
       recv
       recv_nb

Version

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

See Also