Subject: | Net::DBus::ASyncReply |
There seems to be a bug in Net::DBus::ASyncReply, which makes it
impossible to make nonblocking dbus requests. Namely, is_ready() always
seem to return false, no matter what. $asyncreply->wait_for_result()
however seems to work as expected. I basically re-created your example,
almost exactly as it is, inserting real values.
Tested on two machines:
Archlinux, 2.6.25-ARCH
perl version v5.10.0 built for i686-linux-thread-multi
Net::DBus version: 0.33.6
ubuntu 8.04, 2.6.24-19-generic
perl version v5.8.8 built for i486-linux-gnu-thread-multi
Net::DBus version: 0.33.5
In the attached example, i'm trying to talk to pidgin, which should
return an integer as response. this works just fine using the blocking
calls, however, i couldn't get the nonblocking ones to work.
Subject: | dbus.pl |
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use Net::DBus;
use Net::DBus::Annotation qw(:call);
my $bus = Net::DBus->find();
my $service = $bus->get_service("im.pidgin.purple.PurpleService");
my $purple_object = $service->get_object("/im/pidgin/purple/PurpleObject");
my $async = $purple_object->PurpleSavedstatusGetCurrent(dbus_call_async);
while (!$async->is_ready()) {
print "nei\n";
sleep 1;
}
print "hei\n";