From 4c3bbe70c83ef2f7fd97d991ffe4b8dbd848cbae Mon Sep 17 00:00:00 2001 From: David Rose Date: Mon, 16 Jul 2007 17:05:33 +0000 Subject: [PATCH] need ReMutex to avoid deadlock --- panda/src/net/connection.cxx | 14 +++++++------- panda/src/net/connection.h | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/panda/src/net/connection.cxx b/panda/src/net/connection.cxx index 3fed60396f..08c320035c 100644 --- a/panda/src/net/connection.cxx +++ b/panda/src/net/connection.cxx @@ -25,7 +25,7 @@ #include "config_express.h" // for collect_tcp #include "trueClock.h" #include "pnotify.h" -#include "mutexHolder.h" +#include "reMutexHolder.h" #include "socket_ip.h" #include "socket_tcp.h" #include "socket_udp.h" @@ -177,7 +177,7 @@ get_collect_tcp_interval() const { //////////////////////////////////////////////////////////////////// bool Connection:: consider_flush() { - MutexHolder holder(_write_mutex); + ReMutexHolder holder(_write_mutex); if (!_collect_tcp) { return do_flush(); @@ -204,7 +204,7 @@ consider_flush() { //////////////////////////////////////////////////////////////////// bool Connection:: flush() { - MutexHolder holder(_write_mutex); + ReMutexHolder holder(_write_mutex); return do_flush(); } @@ -352,7 +352,7 @@ send_datagram(const NetDatagram &datagram, int tcp_header_size) { Socket_UDP *udp; DCAST_INTO_R(udp, _socket, false); - MutexHolder holder(_write_mutex); + ReMutexHolder holder(_write_mutex); DatagramUDPHeader header(datagram); string data; data += header.get_header(); @@ -386,7 +386,7 @@ send_datagram(const NetDatagram &datagram, int tcp_header_size) { DatagramTCPHeader header(datagram, tcp_header_size); - MutexHolder holder(_write_mutex); + ReMutexHolder holder(_write_mutex); _queued_data += header.get_header(); _queued_data += datagram.get_message(); _queued_count++; @@ -421,7 +421,7 @@ send_raw_datagram(const NetDatagram &datagram) { string data = datagram.get_message(); - MutexHolder holder(_write_mutex); + ReMutexHolder holder(_write_mutex); bool okflag = udp->SendTo(data, datagram.get_address().get_addr()); if (net_cat.is_spam()) { @@ -435,7 +435,7 @@ send_raw_datagram(const NetDatagram &datagram) { } // We might queue up TCP packets for later sending. - MutexHolder holder(_write_mutex); + ReMutexHolder holder(_write_mutex); _queued_data += datagram.get_message(); _queued_count++; diff --git a/panda/src/net/connection.h b/panda/src/net/connection.h index 7970e1eb49..ca167b4b41 100644 --- a/panda/src/net/connection.h +++ b/panda/src/net/connection.h @@ -22,7 +22,7 @@ #include "pandabase.h" #include "referenceCount.h" #include "netAddress.h" -#include "pmutex.h" +#include "reMutex.h" class Socket_IP; class ConnectionManager; @@ -71,7 +71,7 @@ private: ConnectionManager *_manager; Socket_IP *_socket; - Mutex _write_mutex; + ReMutex _write_mutex; bool _collect_tcp; double _collect_tcp_interval;