diff options
author | kwolekr <kwolekr@minetest.net> | 2015-08-06 02:15:21 -0400 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2015-08-06 02:25:35 -0400 |
commit | 8560ece02e36b1e0ee7b86db2a38b8becbb639e4 (patch) | |
tree | ab060b01754e1d5a8b97945c4278f7c47caef8ec /src | |
parent | bd0b469d3d212ae1407233bdb743bfcab31b4dc7 (diff) | |
download | minetest-8560ece02e36b1e0ee7b86db2a38b8becbb639e4.tar.gz minetest-8560ece02e36b1e0ee7b86db2a38b8becbb639e4.tar.bz2 minetest-8560ece02e36b1e0ee7b86db2a38b8becbb639e4.zip |
Fix BufferedPacket race condition (fixes #2983)
This was caused by the use the non-threadsafe SharedBuffer in a
threaded context.
Diffstat (limited to 'src')
-rw-r--r-- | src/network/connection.h | 2 | ||||
-rw-r--r-- | src/util/pointer.h | 8 |
2 files changed, 9 insertions, 1 deletions
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<u8> data; // Data of the packet, including headers + Buffer<u8> 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 <typename T> class SharedBuffer { |