$bgProc = Async->new(sub {generateTarball()}) || &errorReport("10"); while ($currRun) { if ($bgProc->ready) { if ($currentError = $bgProc->error) { &errorReport("11"); } else { if ($bgProc->result > 0) { &errorReport("12"); } } $currRun = 0; } sleep 1; } $currRun = 1;