projects
/
p5sagit/p5-mst-13.2.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
4eef978bd687b8eca94447125d07dbeab7852190
[p5sagit/p5-mst-13.2.git]
/
ext
/
Thread
/
Thread
/
Queue.pm
1
package Thread::Queue;
2
use Thread qw(cond_wait cond_broadcast);
3
4
sub new {
5
my $class = shift;
6
return bless [@_], $class;
7
}
8
9
sub dequeue {
10
use attrs qw(locked method);
11
my $q = shift;
12
cond_wait $q until @$q;
13
return shift @$q;
14
}
15
16
sub enqueue {
17
use attrs qw(locked method);
18
my $q = shift;
19
push(@$q, @_) and cond_broadcast $q;
20
}
21
22
1;