BGS - Background execution of subroutines in child processes.


BGS documentation  | view source Contained in the BGS distribution.

Index


NAME

Top

BGS - Background execution of subroutines in child processes.

SYNOPSIS

Top

  use BGS;

  my @foo;

  foreach my $i (1 .. 2) {
    bgs_call {
      # child process
      return "Start $i";
    } bgs_back {
      # callback subroutine
      my $r = shift;
      push @foo, "End $i. Result: '$r'.\n";
    };
  }

  bgs_wait();

  print foreach @foo;

MOTIVATION

Top

The module was created when need to receive information from dozens of database servers in the shortest time appeared.

DESCRIPTION

Top

bgs_call

Child process is created for each subroutine, that is prescribed with bgs_call, and it executes within this child process.

The subroutine must return either a scalar or a reference!

The answer of the subroutine passes to the callback subroutine as an argument. If a child process ended without bgs_call value returning, than bgs_back subprogram is called without argument.

bgs_call return PID of child proces.

bgs_back

The callback subroutine is described in bgs_back block.

The answer of bgs_call subroutine passes to bgs_back subroutine as an argument.

bgs_wait

Call of bgs_wait() reduces to child processes answers wait and callback subroutines execution.

AUTHOR

Top

Nick Kostirya

COPYRIGHT AND LICENSE

Top


BGS documentation  | view source Contained in the BGS distribution.