Removed restart command due to a huge memory leak

... Caused by free'd objects looped looping around itself calling each
one and become HAL
This commit is contained in:
Shoghi Cervantes Pueyo 2012-12-12 00:27:14 +01:00
parent fb019a88c1
commit c15f8cfda6
5 changed files with 10 additions and 5 deletions

View File

@ -48,11 +48,11 @@ class ConsoleAPI{
console("[INFO] Stopping the server...");
$this->server->close();
break;
case "restart":
/*case "restart":
console("[INFO] Restarting the server...");
$this->server->api->restart = true;
$this->server->close();
break;
break;*/
case "banip":
$p = strtolower(array_shift($params));
switch($p){
@ -179,7 +179,7 @@ class ConsoleAPI{
console("[INFO] /whitelist: Manages whitelisting");
console("[INFO] /banip: Manages IP ban");
console("[INFO] /stop: Stops the server");
console("[INFO] /restart: Restarts the server");
//console("[INFO] /restart: Restarts the server");
foreach($this->help as $c => $h){
console("[INFO] /$c: ".$h[0]);
}

View File

@ -260,6 +260,8 @@ class ServerAPI extends stdClass{ //Yay! I can add anything to this class in run
public function start(){
$this->server->start();
unregister_tick_function(array($this->server, "tick"));
unset($this->server);
return $this->restart;
}

View File

@ -242,7 +242,7 @@ class PocketMinecraftServer extends stdClass{
public function start(){
declare(ticks=15);
register_tick_function(array($this, "tick"));
$this->event("onTick", "tickerFunction", true);
$this->event("onTick", array($this, "tickerFunction"));
$this->event("onReceivedPacket", "packetHandler", true);
register_shutdown_function(array($this, "close"));
$this->loadMap();

View File

@ -26,6 +26,7 @@ the Free Software Foundation, either version 3 of the License, or
*/
set_time_limit(0);
gc_enable();
error_reporting(E_ALL ^ E_NOTICE);
ini_set("display_errors", 1);
ini_set('default_charset', 'utf-8');

View File

@ -35,6 +35,8 @@ while(true){
if($server->start() !== true){
break;
}else{
$server = null;
console("[NOTICE] The server is restarting... (".gc_collect_cycles()." cycles collected)", true, true, 0);
}
console("[NOTICE] The server is restarting...", true, true, 0);
}