def child_pids
          return [] if is_child
          @child_pids ||= []
          tmp_ids = []
          for id in @child_pids
            next if id.to_i == Process.pid
            begin
              Process.kill(0, id)
              tmp_ids << id
            rescue Errno::ESRCH
            end
          end
          @child_pids = tmp_ids if @child_pids != tmp_ids
          @child_pids
        end
return the pids of all alive children/forks