I have a bad deadlock:
One player in the server, and executed a server-console command "save-all".
Now the cRoot's InputThread holds the CS to the Core plugin, because the Core is executing the save-all command; and the command is trying to lock the chunkmap to save chunks.
The TickThread has chunkmap locked because it was ticking, and wants to lock Core's CS to call the OnPlayerMoving() callback. So they effectively deadlock each other.
Fixed deadlock, fixed fake tree remnants... I think I deserve going to bed now
One player in the server, and executed a server-console command "save-all".
Now the cRoot's InputThread holds the CS to the Core plugin, because the Core is executing the save-all command; and the command is trying to lock the chunkmap to save chunks.
The TickThread has chunkmap locked because it was ticking, and wants to lock Core's CS to call the OnPlayerMoving() callback. So they effectively deadlock each other.
Fixed deadlock, fixed fake tree remnants... I think I deserve going to bed now