the XOR/other packets get constantly created/deleted, if we call the function twice (we are multithreaded) it will cause a crash. We need to prevent with a unique_lock.
the XOR/other packets get constantly created/deleted, if we call the function twice (we are multithreaded) it will cause a crash. We need to prevent with a unique_lock.
Player::GetSpellBookUpdatePacket <-- this is what we crashed on in the previous instance, but any are possible
PlayerSkillList::GetSkillPacket
Client::SendRecipeList
PlayerItemList::serialize
EquipmentItemList::serialize
Player::GetSpellBookUpdatePacket <-- this is what we crashed on in the previous instance, but any are possible
PlayerSkillList::GetSkillPacket
EquipmentItemList::serialize - updated to properly protect with MEquipmentItems
PlayerItemList::serialize - already protected by MPlayerItems
Player::GetSpellBookUpdatePacket - added a mutex to lock this function
Client::SendRecipeList - uses nullptr for the orig/xor packet not impacted
PlayerSkillList::GetSkillPacket - changed MPlayerSkills from shared to unique lock
EquipmentItemList::serialize - updated to properly protect with MEquipmentItems
PlayerItemList::serialize - already protected by MPlayerItems
Player::GetSpellBookUpdatePacket - added a mutex to lock this function
Client::SendRecipeList - uses nullptr for the orig/xor packet not impacted
PlayerSkillList::GetSkillPacket - changed MPlayerSkills from shared to unique lock
the XOR/other packets get constantly created/deleted, if we call the function twice (we are multithreaded) it will cause a crash. We need to prevent with a unique_lock.
Client::SendRecipeList
PlayerItemList::serialize
EquipmentItemList::serialize
Player::GetSpellBookUpdatePacket <-- this is what we crashed on in the previous instance, but any are possible
PlayerSkillList::GetSkillPacket
char sheet is also involved, pretty much anywhere we have XOR packets or temp buffers that get deleted/newed for packets.
EquipmentItemList::serialize - updated to properly protect with MEquipmentItems PlayerItemList::serialize - already protected by MPlayerItems Player::GetSpellBookUpdatePacket - added a mutex to lock this function Client::SendRecipeList - uses nullptr for the orig/xor packet not impacted PlayerSkillList::GetSkillPacket - changed MPlayerSkills from shared to unique lock