Skip to content

Commit 81f005b

Browse files
Merge branch 'v0.21'
2 parents 16c917f + 5c1f5e9 commit 81f005b

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

src/impl/certificate.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,11 @@ Certificate Certificate::FromString(string crt_pem, string key_pem) {
228228

229229
mbedtls::check(mbedtls_x509_crt_parse(crt.get(),
230230
reinterpret_cast<const unsigned char *>(crt_pem.c_str()),
231-
crt_pem.length()),
231+
crt_pem.size() + 1),
232232
"Failed to parse certificate");
233233
mbedtls::check(mbedtls_pk_parse_key(pk.get(),
234234
reinterpret_cast<const unsigned char *>(key_pem.c_str()),
235-
key_pem.size(), NULL, 0, NULL, 0),
235+
key_pem.size() + 1, NULL, 0, NULL, 0),
236236
"Failed to parse key");
237237

238238
return Certificate(std::move(crt), std::move(pk));

src/impl/internals.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const size_t DEFAULT_REMOTE_MAX_MESSAGE_SIZE = 65536; // Remote max message
4343

4444
const size_t DEFAULT_WS_MAX_MESSAGE_SIZE = 256 * 1024; // Default max message size for WebSockets
4545

46-
const size_t RECV_QUEUE_LIMIT = 1024 * 1024; // Max per-channel queue size
46+
const size_t RECV_QUEUE_LIMIT = 1024; // Max per-channel queue size (messages)
4747

4848
const int MIN_THREADPOOL_SIZE = 4; // Minimum number of threads in the global thread pool (>= 2)
4949

src/impl/queue.hpp

+5-7
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ template <typename T> class Queue {
2323
public:
2424
using amount_function = std::function<size_t(const T &element)>;
2525

26-
Queue(size_t limit = 0, amount_function func = nullptr);
26+
Queue(size_t limit = 0, // elements (0 means no limit)
27+
amount_function func = nullptr);
2728
~Queue();
2829

2930
void stop();
@@ -50,10 +51,7 @@ template <typename T> class Queue {
5051

5152
template <typename T>
5253
Queue<T>::Queue(size_t limit, amount_function func) : mLimit(limit), mAmount(0) {
53-
mAmountFunction = func ? func : [](const T &element) -> size_t {
54-
static_cast<void>(element);
55-
return 1;
56-
};
54+
mAmountFunction = func ? func : []([[maybe_unused]] const T &element) -> size_t { return 1; };
5755
}
5856

5957
template <typename T> Queue<T>::~Queue() { stop(); }
@@ -76,7 +74,7 @@ template <typename T> bool Queue<T>::empty() const {
7674

7775
template <typename T> bool Queue<T>::full() const {
7876
std::lock_guard lock(mMutex);
79-
return mQueue.size() >= mLimit;
77+
return mLimit > 0 && mQueue.size() >= mLimit;
8078
}
8179

8280
template <typename T> size_t Queue<T>::size() const {
@@ -91,7 +89,7 @@ template <typename T> size_t Queue<T>::amount() const {
9189

9290
template <typename T> void Queue<T>::push(T element) {
9391
std::unique_lock lock(mMutex);
94-
mPushCondition.wait(lock, [this]() { return !mLimit || mQueue.size() < mLimit || mStopping; });
92+
mPushCondition.wait(lock, [this]() { return mLimit == 0 || mQueue.size() < mLimit || mStopping; });
9593
if (mStopping)
9694
return;
9795

0 commit comments

Comments
 (0)