function osm_update_read_stderr($p) { if($error=chop(fgets($p))) { debug("$error", "osm_update"); } elseif($p) { mcp_unregister_stream(MCP_READ, $p); } }
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); } } }