Skip to content

Commit

Permalink
remove Loader.pm, which should fix CPAN.pm installation
Browse files Browse the repository at this point in the history
  • Loading branch information
FGasper committed Feb 21, 2021
1 parent 6e8685f commit 79f48b2
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 47 deletions.
37 changes: 36 additions & 1 deletion lib/Promise/XS.pm
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,6 @@ Windows. There may be a workaround possible, but none is implemented for now.
use Exporter 'import';
our @EXPORT_OK= qw/all collect deferred resolved rejected/;

use Promise::XS::Loader ();
use Promise::XS::Deferred ();
use Promise::XS::Promise ();

Expand All @@ -255,6 +254,9 @@ use constant DEFERRAL_CR => {
# convenience
*deferred = *Promise::XS::Deferred::create;

require XSLoader;
XSLoader::load('Promise::XS', $VERSION);

sub use_event {
my ($name, @args) = @_;

Expand All @@ -266,6 +268,39 @@ sub use_event {
}
}

sub _convert_to_our_promise {
my $thenable = shift;
my $deferred= Promise::XS::Deferred::create();
my $called;

local $@;
eval {
$thenable->then(sub {
return if $called++;
$deferred->resolve(@_);
}, sub {
return if $called++;
$deferred->reject(@_);
});
1;
} or do {
my $error= $@;
if (!$called++) {
$deferred->reject($error);
}
};

# This promise is purely internal, so let’s not warn
# when its rejection is unhandled.
$deferred->clear_unhandled_rejection();

return $deferred->promise;
}

Promise::XS::Deferred::___set_conversion_helper(
\&_convert_to_our_promise,
);

#----------------------------------------------------------------------
# Aggregator functions
sub all {
Expand Down
46 changes: 0 additions & 46 deletions lib/Promise/XS/Loader.pm

This file was deleted.

0 comments on commit 79f48b2

Please sign in to comment.