summaryrefslogtreecommitdiff
path: root/ext/Thread
diff options
context:
space:
mode:
authorHans Mulder <hansmu@xs4all.nl>1998-06-08 09:13:14 -0700
committerGurusamy Sarathy <gsar@cpan.org>1998-06-10 05:46:38 +0000
commit5d582a372c85360bc6ffdf3733896719312079e2 (patch)
tree802e607fbfbc6b27d68d7b1f0685de013ce3f5aa /ext/Thread
parenta99072da2bc541e260dfb72e5ba6c9d6c6136d42 (diff)
downloadperl-5d582a372c85360bc6ffdf3733896719312079e2.tar.gz
Documentation patch for Semaphore.pm
Message-Id: <3.0.5.32.19980608161314.00a0a880@ous.edu> p4raw-id: //depot/perl@1086
Diffstat (limited to 'ext/Thread')
-rw-r--r--ext/Thread/Thread/Semaphore.pm43
1 files changed, 43 insertions, 0 deletions
diff --git a/ext/Thread/Thread/Semaphore.pm b/ext/Thread/Thread/Semaphore.pm
index 4e1bb7ddbc..915808cbed 100644
--- a/ext/Thread/Thread/Semaphore.pm
+++ b/ext/Thread/Thread/Semaphore.pm
@@ -18,6 +18,49 @@ Thread::Semaphore - thread-safe semaphores
$s->up($up_value);
$s->down($up_value);
+=head1 DESCRIPTION
+
+Semaphores provide a mechanism to regulate access to resources. Semaphores,
+unlike locks, aren't tied to particular scalars, and so may be used to
+control access to anything you care to use them for.
+
+Semaphores don't limit their values to zero or one, so they can be used to
+control access to some resource that may have more than one of. (For
+example, filehandles) Increment and decrement amounts aren't fixed at one
+either, so threads can reserve or return multiple resources at once.
+
+=head1 FUNCTIONS AND METHODS
+
+=over 8
+
+=item new
+
+=item new NUMBER
+
+C<new> creates a new semaphore, and initializes its count to the passed
+number. If no number is passed, the semaphore's count is set to one.
+
+=item down
+
+=item down NUMBER
+
+The C<down> method decreases the semaphore's count by the specified number,
+or one if no number has been specified. If the semaphore's count would drop
+below zero, this method will block until such time that the semaphore's
+count is equal to or larger than the amount you're C<down>ing the
+semaphore's count by.
+
+=item up
+
+=item up NUMBER
+
+The C<up> method increases the semaphore's count by the number specified,
+or one if no number's been specified. This will unblock any thread blocked
+trying to C<down> the semaphore if the C<up> raises the semaphore count
+above what the C<down>s are trying to decrement it by.
+
+=back
+
=cut
sub new {