From 0b52905cb72bfc38c61773144db3918fb6688df0 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Tue, 12 Mar 2013 14:12:48 -0700 Subject: [PATCH] Fix another thread race in the websocketpp data code. --- src/cpp/websocketpp/src/messages/data.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cpp/websocketpp/src/messages/data.hpp b/src/cpp/websocketpp/src/messages/data.hpp index ff1b02bdcd..3d2d83222a 100644 --- a/src/cpp/websocketpp/src/messages/data.hpp +++ b/src/cpp/websocketpp/src/messages/data.hpp @@ -212,12 +212,12 @@ private: typedef websocketpp::processor::hybi_util::masking_key_type masking_key_type; friend void intrusive_ptr_add_ref(const data * s) { - boost::unique_lock lock(s->m_lock); + boost::unique_lock lock(s->m_lock); ++s->m_ref_count; } friend void intrusive_ptr_release(const data * s) { - boost::unique_lock lock(s->m_lock); + boost::unique_lock lock(s->m_lock); // TODO: thread safety long count = --s->m_ref_count; @@ -259,7 +259,7 @@ private: mutable boost::detail::atomic_count m_ref_count; mutable pool_weak_ptr m_pool; mutable bool m_live; - mutable boost::mutex m_lock; + mutable boost::recursive_mutex m_lock; }; typedef boost::intrusive_ptr data_ptr;