Skip to content

Multistate thread unsafety #474

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)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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