mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Just don't ask. We'll fix this right if this is the issue.
This commit is contained in:
@@ -84,7 +84,7 @@ public:
|
|||||||
element_ptr get() {
|
element_ptr get() {
|
||||||
boost::lock_guard<boost::recursive_mutex> lock(m_lock);
|
boost::lock_guard<boost::recursive_mutex> lock(m_lock);
|
||||||
|
|
||||||
element_ptr p;
|
element_ptr p, q;
|
||||||
|
|
||||||
/*std::cout << "message requested ("
|
/*std::cout << "message requested ("
|
||||||
<< m_cur_elements-m_avaliable.size()
|
<< m_cur_elements-m_avaliable.size()
|
||||||
@@ -95,7 +95,8 @@ public:
|
|||||||
|
|
||||||
if (!m_avaliable.empty()) {
|
if (!m_avaliable.empty()) {
|
||||||
p = m_avaliable.front();
|
p = m_avaliable.front();
|
||||||
m_avaliable.pop();
|
q = p;
|
||||||
|
m_avaliable.pop(); // FIXME can call intrusive_ptr_release(line 217) which can deadlock
|
||||||
m_used[p->get_index()] = p;
|
m_used[p->get_index()] = p;
|
||||||
} else {
|
} else {
|
||||||
if (m_cur_elements == m_max_elements) {
|
if (m_cur_elements == m_max_elements) {
|
||||||
@@ -210,6 +211,7 @@ private:
|
|||||||
typedef websocketpp::processor::hybi_util::masking_key_type masking_key_type;
|
typedef websocketpp::processor::hybi_util::masking_key_type masking_key_type;
|
||||||
|
|
||||||
friend void intrusive_ptr_add_ref(const data * s) {
|
friend void intrusive_ptr_add_ref(const data * s) {
|
||||||
|
boost::unique_lock<boost::mutex> lock(s->m_lock);
|
||||||
++s->m_ref_count;
|
++s->m_ref_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user