summaryrefslogtreecommitdiff
path: root/thr.pl
diff options
context:
space:
mode:
authordakkar <dakkar@sardina.(none)>2009-08-06 15:15:03 +0200
committerdakkar <dakkar@sardina.(none)>2009-08-06 15:15:03 +0200
commit4de7ff82b202dbef8c57954126932710fe1a82bd (patch)
tree3b7b12012cd4a5d8892b88fe18164e3439c3c523 /thr.pl
parentdequeue_nb but untested (diff)
downloadThread-Queue-Event-master.tar.gz
Thread-Queue-Event-master.tar.bz2
Thread-Queue-Event-master.zip
AnyEvent (untested), method rename, proper structureHEADmaster
Diffstat (limited to 'thr.pl')
-rw-r--r--thr.pl60
1 files changed, 0 insertions, 60 deletions
diff --git a/thr.pl b/thr.pl
deleted file mode 100644
index a2e1386..0000000
--- a/thr.pl
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use warnings;
-use threads;
-use Glib;
-use Thread::Queue::Event;
-use Thread::Queue::Event::Glib;
-
-=head1 Signaling across threads to a Glib loop
-
-Looks like the best way is to use a pipe
-
-=cut
-
-my $q=Thread::Queue::Event->new()->with_role('Glib');
-my $q2=Thread::Queue::Event->new();
-
-threads->create(
- sub{
- print "(1) sleeping\n";
- sleep 2;
- print "(1) sending boo\n";
- $q->enqueue('boo');
- sleep 2;
- threads->create(
- sub{
- print "(2) inserting bar & foo\n";
- $q->insert(0,'bar');
- $q->insert(1,'foo');
- print "(2) signaling\n";
- $q->signal();
- print "(2) signaling\n";
- $q->signal();
- });
- sleep 2;
- print "(1) waiting for command\n";
- my $cmd=$q2->dequeue;
- print "(1) got $cmd\n";
- print "(1) sending quit";
- $q->enqueue('quit');
-});
-
-my $loop=Glib::MainLoop->new();
-$q->add_watch(sub{
- print "(m) waking up\n";
- my $foo=$q->dequeue();
- print "(m) got $foo\n";
- if ($foo eq 'quit') {
- print "(m) quitting\n";
- $loop->quit;
- }
- elsif ($foo eq 'foo') {
- print "(m) sending command\n";
- $q2->enqueue('the command');
- print "(m) sent command\n";
- }
- return Glib::SOURCE_CONTINUE;
- },
- );
-$loop->run;