Acme-Parataxis
view release on metacpan or search on metacpan
lib/Acme/Parataxis.pm view on Meta::CPAN
set_max_threads max_threads
]
]
);
#
our @IPC_BUFFER;
my $lib;
my @SCHEDULER_QUEUE;
my $IS_RUNNING = 0;
sub _bind_functions ($l) {
affix $l, 'init_system', [], Int;
affix $l, 'create_fiber', [ Pointer [SV], Pointer [SV] ], Int;
affix $l, 'coro_call', [ Int, Pointer [SV] ], Pointer [SV];
affix $l, 'coro_transfer', [ Int, Pointer [SV] ], Pointer [SV];
affix $l, 'coro_yield', [ Pointer [SV] ], Pointer [SV];
affix $l, 'is_finished', [Int], Int;
affix $l, 'destroy_coro', [Int], Void;
affix $l, 'force_depth_zero', [ Pointer [SV] ], Void;
affix $l, 'cleanup', [], Void;
affix $l, 'get_os_thread_id_export', [], Int;
lib/Acme/Parataxis.pm view on Meta::CPAN
next if ref $inc;
push @paths, File::Spec->catfile( $inc, 'auto', 'Acme', 'Parataxis', $lib_name );
}
for my $path (@paths) {
if ( -e $path ) {
$lib = Affix::load_library($path);
last if $lib;
}
}
die 'Could not find or load ' . $lib_name unless $lib;
_bind_functions($lib);
}
# API aliases and wrappers
sub fiber : prototype(&) ($code) { spawn( 'Acme::Parataxis', $code ) }
sub async : prototype(&) ($code) {
my $ret = run($code);
stop();
return $ret;
}
( run in 0.474 second using v1.01-cache-2.11-cpan-2398b32b56e )