1 | #!/usr/bin/perl |
1 | #!/usr/bin/perl |
2 | |
2 | |
3 | # the classical producer/consumer example, using semaphores |
3 | # the classical producer/consumer example, using a channel |
4 | # one process produces items, send s a signal. |
4 | # one process produces items, sends a signal. |
5 | # another process waits for that signal and |
5 | # another process waits for that signal and |
6 | # consumed the item. |
6 | # consumed the item. |
7 | |
7 | |
8 | use Coro; |
8 | use Coro; |
9 | use Coro::Channel; |
9 | use Coro::Channel; |
… | |
… | |
30 | |
30 | |
31 | $finished->wait; |
31 | $finished->wait; |
32 | |
32 | |
33 | print "producer finished\n"; |
33 | print "producer finished\n"; |
34 | |
34 | |
35 | yield while $work->size; |
35 | cede while $work->size; |
36 | |
36 | |
37 | print "job finished\n"; |
37 | print "job finished\n"; |
38 | |
38 | |