From 8560ece02e36b1e0ee7b86db2a38b8becbb639e4 Mon Sep 17 00:00:00 2001 From: kwolekr Date: Thu, 6 Aug 2015 02:15:21 -0400 Subject: Fix BufferedPacket race condition (fixes #2983) This was caused by the use the non-threadsafe SharedBuffer in a threaded context. --- src/network/connection.h | 2 +- src/util/pointer.h | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/network/connection.h b/src/network/connection.h index c48da2c70..f15c3e114 100644 --- a/src/network/connection.h +++ b/src/network/connection.h @@ -172,7 +172,7 @@ struct BufferedPacket data(a_size), time(0.0), totaltime(0.0), absolute_send_time(-1), resend_count(0) {} - SharedBuffer data; // Data of the packet, including headers + Buffer data; // Data of the packet, including headers float time; // Seconds from buffering the packet or re-sending float totaltime; // Seconds from buffering the packet unsigned int absolute_send_time; diff --git a/src/util/pointer.h b/src/util/pointer.h index 7922a9b39..7f6654787 100644 --- a/src/util/pointer.h +++ b/src/util/pointer.h @@ -178,6 +178,14 @@ private: unsigned int m_size; }; +/************************************************ + * !!! W A R N I N G !!! * + * !!! A C H T U N G !!! * + * * + * This smart pointer class is NOT thread safe. * + * ONLY use in a single-threaded context! * + * * + ************************************************/ template class SharedBuffer { -- cgit v1.2.3