Skip to content

Multistate thread unsafety #474

@Shauren

Description

@Shauren

In multistate mode and worldserver map update threads > 1, all exposed functions mutating group and guild are missing synchronization

I'm talking about actions whose regular ingame packet handlers are marked as THREADUNSAFE, forced to only ever happen in main thread such as:

  • adding/removing group members
  • changing leader
  • converting to lfg/raid
  • adding/removing guild members
  • disbanding
  • setting ranks
  • changing bank text

Solution could be one of

  • add synchronization (this is just bad)
  • queue the code for later execution on world thread (queue itself must be threadsafe)
  • just remove from registered functions on map bound lua state (maybe not very user friendly)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions