Fixed AsyncTask memory leak (#922)

* Added PocketMine-TesterPlugin submodule with regression test
This commit is contained in:
Dylan K. Taylor 2017-05-17 15:43:44 +01:00 committed by GitHub
parent 8887a92d4b
commit 00e6d6a6b1
5 changed files with 27 additions and 2 deletions

3
.gitmodules vendored
View File

@ -14,3 +14,6 @@
[submodule "tests/plugins/PocketMine-DevTools"]
path = tests/plugins/PocketMine-DevTools
url = https://github.com/pmmp/PocketMine-DevTools.git
[submodule "tests/plugins/PocketMine-TesterPlugin"]
path = tests/plugins/PocketMine-TesterPlugin
url = https://github.com/pmmp/PocketMine-TesterPlugin.git

View File

@ -158,6 +158,10 @@ class AsyncPool{
}
}
foreach($this->workers as $worker){
$worker->collect();
}
Timings::$schedulerAsyncTimer->stopTiming();
}
}

View File

@ -261,7 +261,8 @@ abstract class AsyncTask extends Collectable{
$this->{$p} = null;
}
}
}
$this->setGarbage();
}
}

@ -0,0 +1 @@
Subproject commit a282b45c1d9d2108d602ccb5df7fdef4ef364232

View File

@ -17,7 +17,11 @@ if [ $? -ne 0 ]; then
exit 1
fi
cp -r tests/plugins plugins
rm server.log 2> /dev/null
mkdir -p ./plugins
cp -r tests/plugins/PocketMine-DevTools ./plugins
"$PHP_BINARY" ./plugins/PocketMine-DevTools/src/DevTools/ConsoleScript.php --make ./plugins/PocketMine-DevTools --relative ./plugins/PocketMine-DevTools --out ./plugins/DevTools.phar
rm -rf ./plugins/PocketMine-DevTools
@ -28,3 +32,15 @@ else
echo No phar created!
exit 1
fi
cp -r tests/plugins/PocketMine-TesterPlugin ./plugins
"$PHP_BINARY" src/pocketmine/PocketMine.php --no-wizard --disable-ansi --disable-readline --debug.level=2
result=$(grep 'TesterPlugin' server.log | grep 'Finished' | grep -v 'PASS')
if [ "$result" != "" ]; then
echo "$result"
echo Some tests did not complete successfully, changing build status to failed
exit 1
else
echo All tests passed
fi