private function createChild($socket, $count)
 {
     while ($conn = stream_socket_accept($socket, -1)) {
         while ($record = UltraMilk_FCGI_Record::read($conn)) {
             if ($record->getType() == UltraMilk_FCGI_RecordTypes::BEGIN_REQUEST) {
                 if ($record->getRole() !== $this->role) {
                     throw new RuntimeException('UltraMilk role not equal request role!');
                 }
                 if ($record->getRole() == UltraMilk_FCGI_Roles::RESPONDER) {
                     $this->onRequestHandler->invoke(new UltraMilk_HTTP_Request(UltraMilk_FCGI_Request::create($conn, $record->getVersion(), $this->role, $record->getRequestId(), $record->getFlags())));
                 } else {
                     throw new RuntimeException('This role doesn\'t supported at this moment!');
                 }
             }
             unset($record);
             if (!is_resource($conn)) {
                 break;
             }
         }
     }
 }
 public function close($force = false)
 {
     $this->out->close();
     $this->err->close();
     parent::close();
 }