浏览代码

Update Spawn.cpp

Fix #390 - m_Update mutex is not held long enough for player position update
Image 2 年之前
父节点
当前提交
ed62ee50a1
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      EQ2/source/WorldServer/Spawn.cpp

+ 1 - 1
EQ2/source/WorldServer/Spawn.cpp

@@ -888,7 +888,6 @@ EQ2Packet* Spawn::player_position_update_packet(Player* player, int16 version){
 	}
 
 	int32 tmp_pos_packet_size = pos_packet_size;
-	m_Update.releasewritelock(__FUNCTION__, __LINE__);
 
 	int32 size = info_size + tmp_pos_packet_size + vis_size + 8;
 	if (version >= 284)
@@ -935,6 +934,7 @@ EQ2Packet* Spawn::player_position_update_packet(Player* player, int16 version){
 	ptr += sizeof(int32);
 	ptr += info_size;
 	memcpy(ptr, pos_changes, tmp_pos_packet_size);
+	m_Update.releasewritelock(__FUNCTION__, __LINE__);
 	EQ2Packet* ret_packet = new EQ2Packet(OP_ClientCmdMsg, tmp, size);
 //	DumpPacket(ret_packet);
 	delete[] tmp;