Commit | Line | Data |
d9bb3666 |
1 | package Thread; |
2 | require Exporter; |
3 | require DynaLoader; |
52e1cb5e |
4 | use vars qw($VERSION @ISA @EXPORT); |
5 | |
6 | $VERSION = "1.0"; |
7 | |
d9bb3666 |
8 | @ISA = qw(Exporter DynaLoader); |
8f4f90ac |
9 | @EXPORT_OK = qw(yield cond_signal cond_broadcast cond_wait async); |
734689b1 |
10 | |
d516a115 |
11 | =head1 NAME |
12 | |
13 | Thread - multithreading |
14 | |
15 | =head1 SYNOPSIS |
16 | |
17 | use Thread; |
18 | |
19 | my $t = new Thread \&start_sub, @start_args; |
20 | |
21 | $t->join; |
22 | |
23 | my $tid = Thread->self->tid; |
24 | |
25 | my $tlist = Thread->list; |
26 | |
27 | lock($scalar); |
28 | |
29 | use Thread 'async'; |
30 | |
31 | use Thread 'eval'; |
32 | |
33 | =head1 DESCRIPTION |
34 | |
35 | The C<Threads> module provides multithreading. |
36 | |
37 | =head1 SEE ALSO |
38 | |
39 | L<attrs>, L<Thread::Queue>, L<Thread::Semaphore>, L<Thread::Specific>. |
40 | |
41 | =cut |
42 | |
734689b1 |
43 | # |
44 | # Methods |
45 | # |
46 | |
47 | # |
48 | # Exported functions |
49 | # |
50 | sub async (&) { |
51 | return new Thread $_[0]; |
52 | } |
d9bb3666 |
53 | |
458fb581 |
54 | sub eval { |
55 | return eval { shift->join; }; |
56 | } |
57 | |
d9bb3666 |
58 | bootstrap Thread; |
59 | |
d9bb3666 |
60 | 1; |