File tree Expand file tree Collapse file tree 2 files changed +9
-0
lines changed Expand file tree Collapse file tree 2 files changed +9
-0
lines changed Original file line number Diff line number Diff line change @@ -154,6 +154,7 @@ void JsonRpcConnection::WriteOutgoingMessages(boost::asio::yield_context yc)
154
154
}
155
155
156
156
size_t bytesSent = JsonRpc::SendRawMessage (m_Stream, message, yc);
157
+ m_PendingOutgoingMessages--;
157
158
158
159
if (m_Endpoint) {
159
160
m_Endpoint->AddMessageSent (bytesSent);
@@ -230,6 +231,7 @@ void JsonRpcConnection::SendRawMessage(const String& message)
230
231
231
232
m_OutgoingMessagesQueue.emplace_back (message);
232
233
m_OutgoingMessagesQueued.Set ();
234
+ m_PendingOutgoingMessages++;
233
235
});
234
236
}
235
237
@@ -241,6 +243,7 @@ void JsonRpcConnection::SendMessageInternal(const Dictionary::Ptr& message)
241
243
242
244
m_OutgoingMessagesQueue.emplace_back (JsonEncode (message));
243
245
m_OutgoingMessagesQueued.Set ();
246
+ m_PendingOutgoingMessages++;
244
247
}
245
248
246
249
void JsonRpcConnection::Disconnect ()
Original file line number Diff line number Diff line change @@ -54,6 +54,11 @@ class JsonRpcConnection final : public Object
54
54
Shared<AsioTlsStream>::Ptr GetStream () const ;
55
55
ConnectionRole GetRole () const ;
56
56
57
+ auto GetPendingOutgoingMessages () const noexcept
58
+ {
59
+ return m_PendingOutgoingMessages.load ();
60
+ }
61
+
57
62
void Disconnect ();
58
63
59
64
void SendMessage (const Dictionary::Ptr& request);
@@ -76,6 +81,7 @@ class JsonRpcConnection final : public Object
76
81
boost::asio::io_context::strand m_IoStrand;
77
82
std::vector<String> m_OutgoingMessagesQueue;
78
83
AsioConditionVariable m_OutgoingMessagesQueued;
84
+ Atomic<decltype (m_OutgoingMessagesQueue)::size_type, std::memory_order_relaxed> m_PendingOutgoingMessages {0 };
79
85
AsioConditionVariable m_WriterDone;
80
86
Atomic<bool > m_ShuttingDown;
81
87
boost::asio::deadline_timer m_CheckLivenessTimer, m_HeartbeatTimer;
You can’t perform that action at this time.
0 commit comments