* Made it possible to use lowercase hex numbers, also when encoding JSON (#3102)
Co-authored-by: Thomas Weyn <Thomas.Weyn@cebir.be>
* fix(JSONString): Remove deprecated toJSON functions #4305
* fix(NumericString): conversions inconsistencies #4304
---------
Co-authored-by: Archipel <thomas@weynwebworks.com>
Co-authored-by: Thomas Weyn <Thomas.Weyn@cebir.be>
SplitterChannel::addChannel() should only add a channel once to the internal vector. This prevents issues where the channel is accidentally added twice but only removed once because removeChannel stops at the first result. (#4270)
* add visitor pattern implementation for Poco::Dynamic::Var
* add changes to Makefile and vcxproj for VarVisitor
* resolve review comments Poco::Dynamic::Var
---------
Co-authored-by: Alexander B <bas524@ya.ru>
* Fix pthread_setname not declared #4063
* Fix include prctl.h for specific OS #4063
* Fix getThreadName for specific OS #4063
---------
Co-authored-by: root <root@debian-gnu-linux-11.localdomain>
Co-authored-by: Pavle <pavle@debian-gnu-linux-11.localdomain>
* Complimentary to #3918
I think that we can use Poco::Mutex and Poco::FastMutex as wrappers for std::recursive_mutex and std::mutex instead of replacing
For using std::*mutexes switch on cmake-option POCO_ENABLE_STD_MUTEX
* add define POCO_ENABLE_STD_MUTEX to the Config.h
remove empty if-else from CMakeLists.txt
Consider following situation. A class owns a timer. In destructor of that class we call .cancel() asynchronous on timer before it's destruction.
Now timer is executing cancel in it's own internal thread, while it's doing that destructor of timer is called from owner's destructor. Timer destructor enqueues stop notification. If that enqueue is happening just after while loop from cancel notification, stop notification is gonna be dropped and timer will never stop.
Fix: Add new method in TimedNotificationQueue which will return a notification regardless of the time it needs to be executed.
Get number of pending tasks in the queue. Flush out that many notifications from queue while taking special consideration of pending Stop and Cancel notifications.
Add test for new method in TimedNotificationQueue and fix cancel all tests to actually check if notification got executed.
fixes#3986
* Binary writer/reader: add writeCString and readCString.
* MongoDB::Database: add queryBuildInfo and queryServerHello; add WireVersion enum.
* MongoDB: Introduce OpMsgMessage (request and reply) and related changes in Connection, Database, MessageHeader.
* MongoDB: First unit test changes for OpMsgMessage.
* MongoDB::Document: new functions addNewArray and remove.
* MongoDB: OP_MSG unacknowledged write and many improvements
* MongoDB: new cursor using OP_MSG
* MongoDB: bunch of new tests for OP_MSG wire protocol.
* BinaryWriter::WriteCString: use write instead of operator <<.
* MongoDB::OpMsgCursor: Slightly modified prototype code for using moreToCome flag.
* MongoDB: Add OpMsg* files to Makefiles.
* MongoDB: Add OpMsg* files to VS project files.
* Compile fixes.
* MongoDB::Database: Add factory function for database commands createOpMsgMessage() and cursors createOpMsgCursor()
* chore: gitignore vim .swp files
* feat(POSIX): Always set thread names.
I'm not sure about the original intent to hide it under a DEBUG macro.
Naming the threads in release mode makes it easier to see runtime
application and know which thread pool uses how many threads and what
their names are. Firefox, Chromium and many other apps do this on Linux.
* As of C++11, std::swap is noexcept. #2386
* fix(Any): remove throw on swap
* fix(Any): As of C++11, std::swap is noexcept. #2386
* fix(Any): make size const #2386
* fix(SimpleRowFormatter): clang won't compile noexcept #2386
* a couple of arm fixes
* fix(Any): As of C++11, std::swap is noexcept. #2386
* fix(AnyTest): local() for POCO_NO_SOO# 2386
* test(RSACipher): RSA encryption without private key #2367
* chore(RSACipherTest): delete ciphers #2367