Commit Graph

134 Commits

Author SHA1 Message Date
TheMode
df38061c6b Inline condition 2021-06-15 02:54:03 +02:00
TheMode
0c0b387345 Use a for-each loop, and prevent iterator allocation when empty 2021-06-15 02:29:58 +02:00
TheMode
5d8ed5041f Use AtomicReferenceFieldUpdater to update the tick context 2021-06-04 22:30:35 +02:00
TheMode
fb03b953bb Tick scheduling micro-optimization 2021-05-07 20:41:40 +02:00
TheMode
929a377dc0 Fix Acquirable#currentEntities
Signed-off-by: TheMode <themode@outlook.fr>
2021-04-27 12:16:38 +02:00
themode
e54f685ff9 Fix javadoc build 2021-04-26 18:36:04 +02:00
TheMode
8e642b9116 Remove unnecessary synchronization 2021-04-25 09:33:52 +02:00
TheMode
845a8608db Simplify Acquirable, support for all objects 2021-04-24 18:14:12 +02:00
TheMode
99920a77ba Use stream instead of a collection for current thread entities 2021-04-24 14:59:43 +02:00
TheMode
7983362f25 ThreadProvider comment 2021-04-24 14:44:21 +02:00
TheMode
555cdb66de Fix entity memory leak, improve entity collection creation performance 2021-04-23 12:58:14 +02:00
TheMode
136ed17c0b No thread refresh for perchunk-instance thread provider 2021-04-23 12:25:23 +02:00
TheMode
c24cc07b7c Improve efficiency of entity chunk update 2021-04-23 10:17:42 +02:00
TheMode
0a837d2714 Renamed BatchThread.java 2021-04-23 09:58:52 +02:00
TheMode
370f4c2f57 Added more options inside ThreadProvider 2021-04-22 19:33:07 +02:00
TheMode
ef6f2ac5c9 Rename few methods 2021-04-22 16:59:42 +02:00
TheMode
297652c610 Remove generic Acquirable 2021-04-22 16:38:37 +02:00
TheMode
86faa435f7 Added SingleThreadProvider 2021-04-21 18:33:51 +02:00
TheMode
dba368d16f Thread count should depend on the processor count 2021-04-21 17:14:40 +02:00
TheMode
9660ee30fb More line ending 2021-04-21 14:35:35 +02:00
TheMode
5b1784fa39 Fix line ending 2021-04-21 14:34:16 +02:00
TheMode
73dee1fb1a Better abstraction 2021-04-21 11:27:49 +02:00
TheMode
d8e28ad73a Remove unnecessary volatile, fix acquisition from threads other than the tick ones 2021-04-19 15:25:19 +02:00
TheMode
321d185ffe use a ReentrantLock instead of guava monitor 2021-04-19 11:57:42 +02:00
TheMode
562927ee44 Added comment 2021-04-19 08:53:54 +02:00
TheMode
44b22ce1f1 Reduce monitor acquisition 2021-04-19 08:51:44 +02:00
TheMode
a6b1749e9e Added max refresh time 2021-04-19 08:17:00 +02:00
TheMode
1dbd3078c3 Fix incremental thread refresh 2021-04-18 11:53:38 +02:00
TheMode
92f30070db Implement incremental chunk thread refresh 2021-04-18 11:28:28 +02:00
TheMode
2df5484e1a Dynamic chunk thread change 2021-04-18 06:43:51 +02:00
TheMode
e9f13d0a82 WIP dynamic chunk thread change 2021-04-18 06:29:44 +02:00
TheMode
2c1084d97b Use hashcode 2021-04-18 02:22:35 +02:00
TheMode
7dd6aa2360 Separate PerChunkThreadProvider from PerInstanceThreadProvider, support arbitrary ThreadProvider#findThread number 2021-04-18 01:55:35 +02:00
TheMode
f0607f776a Remove unused class 2021-04-18 00:08:13 +02:00
TheMode
23664292de Simplify acquisition, reduce overhead 2021-04-17 14:22:47 +02:00
TheMode
3b7353300d Acquisition rework 2021-04-17 02:50:33 +02:00
Eoghanmc22
1bb5c7e89b fix deadlock 2021-04-15 14:23:18 -04:00
TheMode
aef05893e1 Fix high CPU usage on startup 2021-04-15 04:11:52 +02:00
TheMode
f4ee5505ca Fix tick thread not being properly terminated 2021-04-15 04:06:55 +02:00
TheMode
b3a548287a Improve thread safety 2021-04-15 03:53:18 +02:00
TheMode
2b79e91295 Add comment + todo 2021-04-15 03:38:27 +02:00
TheMode
bd3e4e2f0a Added Acquirable#currentEntities 2021-04-15 03:08:19 +02:00
TheMode
11b1bbea2e Update entities thread 2021-04-15 01:44:08 +02:00
TheMode
fec36d4706 Run thread directly 2021-04-14 22:48:13 +02:00
TheMode
7dc0387ecf Add a way to find the current threadid of a chunk 2021-04-14 22:22:46 +02:00
TheMode
79f0d97664 Cleanup tick preparation 2021-04-14 21:41:14 +02:00
TheMode
a55ea6d0c2 WIP per-chunk thread 2021-04-14 21:29:37 +02:00
TheMode
356150847e Per-chunk batch management 2021-04-14 20:32:02 +02:00
TheMode
ccab205a54 Initial acquirable API commit 2021-04-14 20:12:56 +02:00
TheMode
17fcd23c77 Fix condition, add documentation 2021-04-11 23:52:12 +02:00
TheMode
5ef4d0f9b4 Reduce the overhead of converting chunk indexes to chunk object, dont tick empty entity list 2021-04-09 18:22:29 +02:00
Tyan
855c8af455 Added ExceptionManager for custom exception handling 2021-01-20 11:43:45 +01:00
themode
37a626121b Set the default thread provider thread count to PROCESSORS*2 2020-11-17 02:56:55 +01:00
themode
0abedd7453 Optimization to prevent permanent map lookup 2020-11-14 09:02:29 +01:00
themode
ade727cd0f Cleanup + created SingleThreadProvider 2020-11-13 19:43:22 +01:00
themode
0ab9c79a28 Prevent array resizing during server tick 2020-11-13 03:26:35 +01:00
themode
1d30e6e953 Use the Validator interface when possible for readability 2020-11-07 04:28:50 +01:00
themode
6e36f3242d Added InstanceContainer#copy and Chunk#copy 2020-10-31 19:22:23 +01:00
themode
00ce2be258 Fixed shared instances tick being called 2 times 2020-10-31 02:55:55 +01:00
themode
419541b878 UpdateManager comments + synchronization fix 2020-10-22 15:57:27 +02:00
themode
3cb880cf80 General cleanup 2020-10-22 12:55:53 +02:00
themode
660a67e53e English fix 2020-10-15 21:16:31 +02:00
themode
f1dccfacc3 Fixed instance ticks not being executed if the chunk list is empty 2020-10-13 04:10:37 +02:00
themode
04498ed0f0 Chunk code cleanup & optimization 2020-10-05 10:03:25 +02:00
themode
cb52a9d119 PerGroupChunkProvider cleanup 2020-09-03 20:52:21 +02:00
themode
78dd2cb005 Fix tick update for SharedInstance 2020-09-01 20:20:46 +02:00
themode
8b30caa8c8 Micro optimization + cleanup 2020-08-19 01:24:51 +02:00
themode
e5e1d1614b Optimize chunk index to coordinate conversion + made the chunk map in InstanceContainer using long primitive but non-concurrent, requiring synchronization 2020-08-17 16:50:23 +02:00
Eoghanmc22
284613a1a8 fix merge 2020-08-15 10:00:50 -04:00
Eoghanmc22
1b7641c0e1 Merge branches '1.16.2' and 'master' of https://github.com/Minestom/Minestom
 Conflicts:
	src/main/java/net/minestom/server/UpdateManager.java
	src/main/java/net/minestom/server/thread/PerGroupChunkProvider.java
	src/main/java/net/minestom/server/thread/PerInstanceThreadProvider.java
2020-08-14 20:52:34 -04:00
Felix Cravic
0d4689a367 Optimize thread providers 2020-08-15 01:18:49 +02:00
Felix Cravic
0dd454985f Added list initial capacity 2020-08-14 15:15:16 +02:00
Eoghanmc22
d12618af0f Fix concurrent modify exception. 2020-08-13 18:50:57 -04:00
Eoghanmc22
7aaf6a6ec8 Fix ticks 2020-08-10 19:41:14 -04:00
Felix Cravic
c2165abe1f Added ChunkUtils#isLoaded + optimization of the thread providers 2020-08-10 11:32:03 +02:00
Felix Cravic
13275eb534 Fixed synchronization with unloaded chunks 2020-08-10 08:55:01 +02:00
Felix Cravic
008002f11b WIP synchronization fix + updated hydrazine 2020-08-10 07:24:43 +02:00
Felix Cravic
63ed21380c Fixed number arguments 2020-08-09 10:59:12 +02:00
Felix Cravic
45fd0dc22a Comments 2020-08-07 09:14:50 +02:00
Felix Cravic
920a16300e Fixed PerGroupChunkProvider 2020-08-06 18:32:56 +02:00
Felix Cravic
a38a143bba Rework of the thread provider + ConnectionManager#getPlayer for UUID 2020-08-06 16:28:04 +02:00
Felix Cravic
c74ce2752c Cleanup 2020-08-03 10:35:46 +02:00
Felix Cravic
086c9738b1 Very early chunk group based thread 2020-08-02 11:37:39 +02:00
Felix Cravic
87921a8788 Added ThreadProvider 2020-07-03 16:44:21 +02:00