Return connection status in condvar in $i3->connect
This commit is contained in:
parent
7d92e2c3e2
commit
279528a863
|
@ -60,6 +60,7 @@ our @EXPORT = qw(i3);
|
||||||
|
|
||||||
my $magic = "i3-ipc";
|
my $magic = "i3-ipc";
|
||||||
|
|
||||||
|
# TODO: export constants for message types
|
||||||
# TODO: auto-generate this from the header file? (i3/ipc.h)
|
# TODO: auto-generate this from the header file? (i3/ipc.h)
|
||||||
my $event_mask = (1 << 31);
|
my $event_mask = (1 << 31);
|
||||||
my %events = (
|
my %events = (
|
||||||
|
@ -93,7 +94,12 @@ sub new {
|
||||||
=head2 $i3->connect
|
=head2 $i3->connect
|
||||||
|
|
||||||
Establishes the connection to i3. Returns an C<AnyEvent::CondVar> which will
|
Establishes the connection to i3. Returns an C<AnyEvent::CondVar> which will
|
||||||
be triggered as soon as the connection has been established.
|
be triggered with a boolean (true if the connection was established) as soon as
|
||||||
|
the connection has been established.
|
||||||
|
|
||||||
|
if ($i3->connect->recv) {
|
||||||
|
say "Connected to i3";
|
||||||
|
}
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
sub connect {
|
sub connect {
|
||||||
|
@ -104,12 +110,14 @@ sub connect {
|
||||||
tcp_connect "unix/", $self->{path}, sub {
|
tcp_connect "unix/", $self->{path}, sub {
|
||||||
my ($fh) = @_;
|
my ($fh) = @_;
|
||||||
|
|
||||||
|
return $cv->send(0) unless $fh;
|
||||||
|
|
||||||
$self->{ipchdl} = AnyEvent::Handle->new(
|
$self->{ipchdl} = AnyEvent::Handle->new(
|
||||||
fh => $fh,
|
fh => $fh,
|
||||||
on_read => sub { my ($hdl) = @_; $self->_data_available($hdl) }
|
on_read => sub { my ($hdl) = @_; $self->_data_available($hdl) }
|
||||||
);
|
);
|
||||||
|
|
||||||
$cv->send
|
$cv->send(1)
|
||||||
};
|
};
|
||||||
|
|
||||||
$cv
|
$cv
|
||||||
|
|
Loading…
Reference in New Issue