Skip to content

feat: Thread Safety #39

Description

@Zffu

Currently, the IO thread has full access over the world and players and modifies them. This is generally bad and can cause very bad issues and errors in the future.

We thus establish the following principles:

  • Main thread processes packets
  • Main thread processes connection events (mutation, disconnect, add to world)
  • Chunks will be generated on Chunk Worker threads
  • CavernServer will interact with Godot only on the main thread

Furthermore, these changes will also be made:

  • Removal of most Godot signals used to append things in the world
  • Chunks will be added by CavernServer instead of Godot
  • Entities will be added by CavernServer instead of Godot
  • CavernServer will handle the player node directly instead of Godot

This will lead to minor performance improvements and overall less traumatizing errors for me to deal with

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions