81957d133d
AsyncTask: Rewrite how thread-local storage works, now non-dependent on Server or ServerScheduler
...
this implementation was god-awful bad and it was entirely avoidable to make it this complicated.
This utilizes the fact that pthreads treats static properties as thread-local. AsyncTask local storage now utilizes a \SplObjectStorage stored in an AsyncTask private static field.
2018-05-29 19:41:00 +01:00
299e4c8a85
ServerScheduler: remove nonsensical condition in addTask()
...
now that return type declarations exist, it's not possible for this to return a non-Plugin instance.
2018-05-29 18:17:49 +01:00
982444949c
Fixed typo in AsyncPool
...
asychronous -> asynchronous
2018-05-26 16:30:49 +01:00
6ceb9af749
.-.
2018-05-10 12:51:39 +01:00
bcd197d7bb
AsyncWorker: fixed __construct() signature
2018-05-10 12:50:09 +01:00
3148f692c1
AsyncWorker: No need to register static logger - it's inherited by default with pthreads 3.1.7
2018-05-10 12:49:03 +01:00
c9bd60123b
Scheduler: shutdown async pool properly instead of relying on ThreadManager
2018-05-09 19:49:12 +01:00
73e09392b6
Timings: Clean up some terrible code, move namespaces
2018-03-19 19:05:51 +00:00
ac5a91b67e
Cleaned up bool comparison mess
2018-03-19 14:10:55 +00:00
cd35bd6872
git diff-tree --check $(git hash-object -t tree /dev/null) HEAD
2018-03-11 10:31:25 +00:00
e0d5c79848
Scheduler: Catch exceptions thrown from AsyncTask->onCompletion()
2018-02-27 11:33:16 +00:00
18b287c3ea
AsyncTask: Remove cleanObject() and calls to it
...
This is no longer needed. Doing worker GC (via collect()) frees the allocated memory anyway, so this function is now redundant.
2018-01-30 16:45:49 +00:00
8e1394bf53
MemoryManager: Use get_declared_classes() to build lists of static properties
...
This makes memory dumping independent from the autoloader implementation, and fixes #1958 .
2018-01-23 18:23:53 +00:00
4f8e4f0522
Add EOF newlines where missing (bulk) ( #1836 )
...
This should solve issues with people making GitHub PRs and having the web editor messing things up. GitHub Web Editor sucks :(
2017-12-20 11:56:36 +00:00
74b074753f
Bulk addition of constant visibilities
...
thanks PhpStorm inspections plugin for annoying the shit out of me until
I did this.
2017-11-21 14:44:10 +00:00
119913da30
Modified misleading comment ( #1455 )
...
The plugin isn't supposed to extend PluginTask, the task is
2017-10-09 07:52:40 +01:00
7ba193dc2e
Set ErrorException handler on AsyncWorkers
2017-09-28 18:01:31 +01:00
15b08c1417
Added capability to dump AsyncWorkers' memory ( #1379 )
...
This now actually works with PHP 7.2 + latest pthreads, before it was too unstable.
2017-09-14 16:45:48 +01:00
aaa3b6e59a
Added explicit AsyncTask->storeLocal(), removed AsyncTask->__construct() object storage ( #1322 )
...
Far too often I see people using IDEs which generate the constructors for them and then accidentally unintentionally store things in the object store. This parent constructor behaviour is unexpected. If a developer wants to store something, they should now do so explicitly by calling storeLocal().
2017-09-10 20:31:28 +01:00
1d338bfdf9
Fixed uncaught exceptions during Task->onCancel() causing all kinds of nasty behaviour
...
including crashing the server on shutdown, preventing self-cancellation, and causing memory leaks
2017-09-02 19:28:51 +01:00
9902d29734
ServerScheduler::scheduleAsyncTask() returns the worker used ( #1312 )
2017-08-29 10:29:24 +01:00
7c212d3d53
Fix formatting issue in AsyncPool
2017-08-25 19:15:57 +01:00
d1852834de
Revert "Added capability to dump AsyncWorker memory"
...
This reverts commit eb4594348b
.
This is far too unstable with more than one worker thread.
2017-08-22 20:46:20 +01:00
eb4594348b
Added capability to dump AsyncWorker memory
2017-08-22 19:57:00 +01:00
17053389b0
Added memory limits for AsyncWorkers
2017-08-20 12:15:48 +01:00
57e7c3d91f
Missed one
2017-07-15 13:30:02 +01:00
2018ad6376
Merge master
2017-07-14 12:12:35 +01:00
b5790d19bf
Cleaned up MainLogger registration and declared a typehint
...
Remove null hint from MainLogger::getLogger() so static analysis doesn't complain everywhere
just make sure you register the logger before trying to use MainLogger::getLogger() on a different thread!
2017-07-14 11:39:04 +01:00
c3b8be3f60
and more typehints
2017-07-14 10:56:51 +01:00
46a2e6cbf8
Some breaking changes for plugins >:D
2017-07-14 08:52:27 +01:00
8fc1501e89
Moar typehints
2017-07-14 08:52:27 +01:00
2a7b736f18
Heap of bugfixes, cleanup and PHP 7 upgrades
2017-07-13 19:18:56 +01:00
9c9095060f
Register MainLogger on AsyncWorkers to make MainLogger::getLogger() usable in AsyncTasks
...
Threaded static properties aren't thread-local anymore in pthreads 3.1.7dev
2017-07-04 16:50:17 +01:00
a73c6f1861
Fixed some unnecessary FQNs in docs
2017-06-25 12:43:04 +01:00
e18a3ac933
Fixed UUID-related issues
2017-06-07 13:11:03 +01:00
481114281e
Server starts!
2017-06-07 12:53:16 +01:00
51b0673b4b
Bite the bullet and enable strict types on everything
2017-06-07 12:53:16 +01:00
674394c4f5
Fixed undefined offset when retrieving something from the thread store that doesn't exist ( #919 )
2017-05-22 13:53:57 +08:00
568e2760f1
Collect workers when cancelling all tasks
2017-05-17 19:30:50 +01:00
00e6d6a6b1
Fixed AsyncTask memory leak ( #922 )
...
* Added PocketMine-TesterPlugin submodule with regression test
2017-05-17 15:43:44 +01:00
5a9b5db103
Better cURL API, use async in timings ( #834 )
...
* Improved cURL functions
* Created BulkCurlTask
* Use asynchronous cURL posting in /timings paste
Closes #509
2017-04-25 11:52:18 +01:00
6ece57e23e
Merge changes from master
2017-04-21 22:48:18 +01:00
1c7773c5f1
Visibility keyword before final or abstract keyword. ( #814 )
2017-04-13 20:58:53 +08:00
56990eb28b
MCPE protocol gets its own namespace
2017-03-08 20:28:39 +00:00
b28e38ab26
Move some exceptions out of utils into their relevant namespaces, move some Chunk methods to ChunkUtils for I/O, refactor "colour" -> "color"
2017-01-15 11:31:12 +00:00
1cb96d24ce
Some fixes, thanks PhpStorm
2017-01-04 11:29:24 +00:00
175dd0efa6
PhpStorm inspections
...
Fixed some minor bugs and dropped some obsolete code
pocketmine\level\generator namespace is ignored in this commit
2016-12-14 21:49:35 +00:00
da23568546
Disallow scheduling the same AsyncTask instance more than once
2016-11-20 01:12:38 +08:00
37ae760417
Fixed crashes after scheduleAsyncTaskToWorker() calls
2016-11-13 18:32:11 +08:00
ab4d6b1e36
Clarified that AsyncTask should not run for a long time
2016-11-13 18:14:41 +08:00