package DNS::Unbound::AsyncQuery::AnyEventXSPromises; use strict; use warnings; # This leaks; don’t use it. use AnyEvent::XSPromises (); our @ISA; use parent 'DNS::Unbound::AsyncQuery'; BEGIN { push @ISA, 'AnyEvent::XSPromises::PromisePtr'; } use constant _DEFERRED_CR => \&AnyEvent::XSPromises::deferred; my ($new, $class); sub _dns_unbound_then { # This hackery is here because AE::XSP doesn’t accept subclassing. $class = ref $_[0]; bless $_[0], 'AnyEvent::XSPromises::PromisePtr'; $new = bless( $_[0]->then(@_[1, 2]), $class ); bless $_[0], $class; return $new; } 1;