public function run()
 {
     $pid = pcntl_fork();
     if ($pid < 0) {
         die("could not fork");
     } elseif ($pid) {
         $this->process_count++;
         if ($this->process_count >= $this->maxprocess) {
             pcntl_wait($status);
             $this->process_count--;
         }
         //            BeanFinder::clear();
         //            ProduceEnvAssembly::setup();
     } else {
         BeanFinder::free();
         //ProduceEnvAssembly::setup();
         $args = func_get_args();
         call_user_func_array(array($this, 'singleStep'), $args);
         exit;
     }
 }