Changeset 7772 for code/branches/network5/src/libraries/network/packet
- Timestamp:
- Dec 17, 2010, 10:41:24 AM (15 years ago)
- Location:
- code/branches/network5/src/libraries/network/packet
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/network5/src/libraries/network/packet/Packet.cc
r7759 r7772 35 35 #include <enet/enet.h> 36 36 #include <boost/static_assert.hpp> 37 #include <boost/thread/mutex.hpp> 37 38 38 39 #include "util/Debug.h" … … 61 62 62 63 std::map<size_t, Packet *> Packet::packetMap_; 64 boost::mutex Packet::packetMapMutex_; 63 65 64 66 Packet::Packet() … … 142 144 // Assures we don't create a packet and destroy it right after in another thread 143 145 // without having a reference in the packetMap_ 146 Packet::packetMapMutex_.lock(); 144 147 packetMap_[reinterpret_cast<size_t>(enetPacket_)] = this; 148 Packet::packetMapMutex_.unlock(); 145 149 } 146 150 } … … 164 168 // ENetPacket *temp = enetPacket_; 165 169 // enetPacket_ = 0; // otherwise we have a double free because enet already handles the deallocation of the packet 166 if(!Host::addPacket( enetPacket_, clientID_)) 167 enet_packet_destroy(this->enetPacket_); // if we could not add the packet to the enet queue delete it manually 170 if( this->flags_ & PacketFlag::Reliable ) 171 Host::addPacket( enetPacket_, clientID_, 0); 172 else 173 Host::addPacket( enetPacket_, clientID_, 0); 168 174 return true; 169 175 } … … 228 234 void Packet::deletePacket(ENetPacket *enetPacket){ 229 235 // Get our Packet from a global map with all Packets created in the send() method of Packet. 236 Packet::packetMapMutex_.lock(); 230 237 std::map<size_t, Packet*>::iterator it = packetMap_.find(reinterpret_cast<size_t>(enetPacket)); 231 238 assert(it != packetMap_.end()); … … 234 241 delete it->second; 235 242 packetMap_.erase(it); 243 Packet::packetMapMutex_.unlock(); 236 244 // COUT(6) << "PacketMap size: " << packetMap_.size() << std::endl; 237 245 } -
code/branches/network5/src/libraries/network/packet/Packet.h
r7490 r7772 96 96 private: 97 97 static std::map<size_t, Packet *> packetMap_; 98 static boost::mutex packetMapMutex_; 98 99 ENetPacket *enetPacket_; 99 100 };
Note: See TracChangeset
for help on using the changeset viewer.