Commit | Line | Data |
36cf3bcb |
1 | package Tak::ModuleLoader; |
2 | |
3 | use Moo; |
4 | |
5 | has remote => (is => 'ro', required => 1); |
6 | |
7 | sub inc_callback { |
799b77f3 |
8 | my ($self) = @_; |
9 | sub { return if our $In_Reentry; $self->maybe_load_module($_[1]) } |
36cf3bcb |
10 | } |
11 | |
12 | sub maybe_load_module { |
13 | my ($self, $module) = @_; |
799b77f3 |
14 | local our $In_Reentry = 1; |
15 | my ($status, $code) = $self->remote->blocking_request(source_for => $module); |
16 | if ($status eq 'RESULT') { |
36cf3bcb |
17 | open my $fh, '<', \$code; |
18 | return $fh; |
19 | } |
20 | return; |
21 | } |
22 | |
23 | 1; |