ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/Coro/SemaphoreSet.pm
(Generate patch)

Comparing Coro/Coro/SemaphoreSet.pm (file contents):
Revision 1.34 by root, Sun May 15 23:46:25 2005 UTC vs.
Revision 1.35 by root, Sun May 15 23:46:31 2005 UTC

107 107
108=cut 108=cut
109 109
110sub up { 110sub up {
111 my $sem = $_[0][1]{$_[1]}; 111 my $sem = $_[0][1]{$_[1]};
112
112 if (++$sem->[0] > 0) { 113 if (++$sem->[0] > 0) {
113 (shift @{$sem->[1]})->ready if @{$sem->[1]}; 114 (shift @{$sem->[1]})->ready if @{$sem->[1]};
114 } 115 }
116
115 delete $_[0][1]{$_[1]} if $sem->[0] == $_[0][0] && !@{$sem->[1] || []} 117 delete $_[0][1]{$_[1]} if $sem->[0] == $_[0][0] && !@{$sem->[1] || []};
116} 118}
117 119
118=item $sem->try 120=item $sem->try
119 121
120Try to C<down> the semaphore. Returns true when this was possible, 122Try to C<down> the semaphore. Returns true when this was possible,

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines