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::MutexFast - Fast 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::MutexFast(3pm)

Description

       A channel class providing queue-like and two-way communication for processes and threads. Locking is
       handled using MCE::Mutex.

       This is similar to MCE::Channel::Mutex 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 => 'MutexFast' );

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

Name

       MCE::Channel::MutexFast - Fast 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::MutexFast version 1.901