示例#1
0
function osm_update_read_stderr($p) {
  if($error=chop(fgets($p))) {
    debug("$error", "osm_update");
  }
  elseif($p) {
    mcp_unregister_stream(MCP_READ, $p);
  }
}
示例#2
0
function renderd_read() {
  global $renderd_start_time;
  global $renderd_pipes;
  global $renderd_current;

  if($f=fgets($renderd_pipes[1])) {
    $f=trim($f);
    $debug_level=D_DEBUG;

    if(preg_match("/DONE TILE ([A-Za-z0-9_]+) ([0-9]+) ([0-9]+)\-([0-9]+) ([0-9]+)\-([0-9]+) in ([0-9\.]+) seconds/", $f, $m)) {
      renderd_tiles_done($m);
      $debug_level=D_NOTICE;
    }
    elseif(preg_match("/START TILE ([A-Za-z0-9_]+) ([0-9]+) ([0-9]+)\-([0-9]+) ([0-9]+)\-([0-9]+)/", $f, $m)) {
      renderd_tiles_start($m);
      $debug_level=D_NOTICE;
    }

    debug($f, "renderd", $debug_level);
  }
  else {
    // renderd stopped, handle possible restart
    $duration=time()-$renderd_start_time;
    debug(sprintf("renderd aborted after %ds", $duration), "renderd");

    // unregister stream from select
    mcp_unregister_stream(MCP_READ, $renderd_pipes[1]);
    fclose($renderd_pipes[0]);
    fclose($renderd_pipes[1]);
    fclose($renderd_pipes[2]);
    $renderd_current=array();

    // if renderd is not working properly (quit after less than a minute) don't
    // restart but write debug message instead
    if($duration>60)
      renderd_restart();
    else {
      debug("not restarting renderd - respawning too fast", "renderd");
      unset($renderd_pipes);
      unset($renderd_proc);
    }
  }
}