mirror of
https://github.com/mii443/libdatachannel.git
synced 2025-08-23 15:48:03 +00:00
Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
b3edcfa05c | |||
19e148363c | |||
7f6f178177 |
@ -1,6 +1,6 @@
|
|||||||
cmake_minimum_required(VERSION 3.7)
|
cmake_minimum_required(VERSION 3.7)
|
||||||
project(libdatachannel
|
project(libdatachannel
|
||||||
VERSION 0.11.6
|
VERSION 0.11.7
|
||||||
LANGUAGES CXX)
|
LANGUAGES CXX)
|
||||||
set(PROJECT_DESCRIPTION "WebRTC Data Channels Library")
|
set(PROJECT_DESCRIPTION "WebRTC Data Channels Library")
|
||||||
|
|
||||||
|
@ -533,13 +533,16 @@ void SctpTransport::updateBufferedAmount(uint16_t streamId, long delta) {
|
|||||||
else
|
else
|
||||||
it->second = amount;
|
it->second = amount;
|
||||||
|
|
||||||
mSendMutex.unlock();
|
// Synchronously call the buffered amount callback
|
||||||
|
triggerBufferedAmount(streamId, amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SctpTransport::triggerBufferedAmount(uint16_t streamId, size_t amount) {
|
||||||
try {
|
try {
|
||||||
mBufferedAmountCallback(streamId, amount);
|
mBufferedAmountCallback(streamId, amount);
|
||||||
} catch (const std::exception &e) {
|
} catch (const std::exception &e) {
|
||||||
PLOG_DEBUG << "SCTP buffered amount callback: " << e.what();
|
PLOG_WARNING << "SCTP buffered amount callback: " << e.what();
|
||||||
}
|
}
|
||||||
mSendMutex.lock();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SctpTransport::sendReset(uint16_t streamId) {
|
void SctpTransport::sendReset(uint16_t streamId) {
|
||||||
|
@ -83,6 +83,7 @@ private:
|
|||||||
bool trySendQueue();
|
bool trySendQueue();
|
||||||
bool trySendMessage(message_ptr message);
|
bool trySendMessage(message_ptr message);
|
||||||
void updateBufferedAmount(uint16_t streamId, long delta);
|
void updateBufferedAmount(uint16_t streamId, long delta);
|
||||||
|
void triggerBufferedAmount(uint16_t streamId, size_t amount);
|
||||||
void sendReset(uint16_t streamId);
|
void sendReset(uint16_t streamId);
|
||||||
bool safeFlush();
|
bool safeFlush();
|
||||||
|
|
||||||
@ -97,7 +98,8 @@ private:
|
|||||||
|
|
||||||
Processor mProcessor;
|
Processor mProcessor;
|
||||||
std::atomic<int> mPendingRecvCount;
|
std::atomic<int> mPendingRecvCount;
|
||||||
std::mutex mRecvMutex, mSendMutex;
|
std::mutex mRecvMutex;
|
||||||
|
std::recursive_mutex mSendMutex; // buffered amount callback is synchronous
|
||||||
Queue<message_ptr> mSendQueue;
|
Queue<message_ptr> mSendQueue;
|
||||||
std::map<uint16_t, size_t> mBufferedAmount;
|
std::map<uint16_t, size_t> mBufferedAmount;
|
||||||
amount_callback mBufferedAmountCallback;
|
amount_callback mBufferedAmountCallback;
|
||||||
|
Reference in New Issue
Block a user