MirOS Manual: Thread::Queue(3p)


Thread::Queue(3p)Perl Programmers Reference GuidThread::Queue(3p)

NAME

     Thread::Queue - thread-safe queues

SYNOPSIS

         use Thread::Queue;
         my $q = new Thread::Queue;
         $q->enqueue("foo", "bar");
         my $foo = $q->dequeue;    # The "bar" is still in the queue.
         my $foo = $q->dequeue_nb; # returns "bar", or undef if the queue was empty
         my $left = $q->pending;   # returns the number of items still in the queue

DESCRIPTION

     A queue, as implemented by "Thread::Queue" is a thread-safe
     data structure much like a list.  Any number of threads can
     safely add elements to the end of the list, or remove ele-
     ments from the head of the list. (Queues don't permit adding
     or removing elements from the middle of the list).

FUNCTIONS AND METHODS

     new     The "new" function creates a new empty queue.

     enqueue LIST
             The "enqueue" method adds a list of scalars on to
             the end of the queue. The queue will grow as needed
             to accommodate the list.

     dequeue The "dequeue" method removes a scalar from the head
             of the queue and returns it. If the queue is
             currently empty, "dequeue" will block the thread
             until another thread "enqueue"s a scalar.

     dequeue_nb
             The "dequeue_nb" method, like the "dequeue" method,
             removes a scalar from the head of the queue and
             returns it. Unlike "dequeue", though, "dequeue_nb"
             won't block if the queue is empty, instead returning
             "undef".

     pending The "pending" method returns the number of items
             still in the queue.

SEE ALSO

     threads, threads::shared

perl v5.8.8                2005-02-05                           1

Generated on 2014-07-04 21:17:45 by $MirOS: src/scripts/roff2htm,v 1.79 2014/02/10 00:36:11 tg Exp $

These manual pages and other documentation are copyrighted by their respective writers; their source is available at our CVSweb, AnonCVS, and other mirrors. The rest is Copyright © 2002‒2014 The MirOS Project, Germany.
This product includes material provided by Thorsten Glaser.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.