* fix(platform): MinGW Compile and link errors: undefined reference to `WinMain'
* fix(platform): MinGW compile UUID tests (conflicting UUID defined as GUID in rpcdce.h via windows.h)
* Remove _WIN32_WCE macro
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. First remove
all macro usages from our own files.
* Remove WinCE support from build files
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. Remove all
references from build systems / scripts.
* Remove Windows CE related source and header files
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. First remove
all macro usages from our own files.
* Remove wcelibcex folder
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. First remove
all macro usages from our own files.
* Remove rest Windows CE mentions
There where some Windows CE mentions left. Remove those.
* Update Windows CE documentation
We should keep documentation some time so people can find reason for
remove.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* add sendfile method for streamsocket
* add mswsock.lib to the project files and templates
* remove /DPOCO_NO_AUTOMATIC_LIBS for cmake windows build
* merge from upstream
* merge from upstream
* fix code stile
add NotImplemented exception for unsupported platforms
exculude <sys/sendfile.h> for POCO_EMSCRIPTEN, because https://
github.com/emscripten-core/emscripten/pull/16234
* add iostream include for std::cout
* fix compilation for emscripten (wrap sendfile)
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
* Test that enumerates lots of elements with the same name
* Use map from key to count instead of multiset
Co-authored-by: Alexander Gololobov <{ID}+{username}@users.noreply.github.com>
Timer is implemented with internal queue. If a user wants to cancel all pending tasks it can call .cancel to schedule CancelNotification.
As a part of processing of CancelNotification it will just flush the whole queue. It does have special processing for StopNotification so that Timer destruction doesn't get blocked.
Now if we first schedule async cancel and before this first cancel is processed we schedule another cancel but this time a sync second one will block because it is never notified that all tasks are canceled, _finished event is never set on that flushed CancelNotification.
Fix: add diffrent processing in case of CancelNotification to set all of it's _finished events.
Also add a test for this situation.
* Some cleanup in the root CMakeLists.txt
* Cleanup cmake targets
* Add find openssl modul for older cmake version
* Set proper scope
* Change crypto default to off
* Fix openssl default to on
* Remove global setting of C99 standard
* Set from C11 to C99
* Fix for NetSSL win build
* Set C99 compile features
* Fix Windows build
* Fix windows build
* Cleanup poco unbundle definition
* Fix PDF build
* Remove unused set affinity
* Add _CRT_SECURE_NO_WARNINGS as target compile definitions
* Add _AFXDLL as target compile definitions
* Remove commented out line
* Refactor add_definitions to target_compile_definitons in Util
* Refactor add_definitions to target_compile_definitons in XML
* Remove THREADSAFE in data sql cmake build
* Refactor add_definitions to target_compile_definition in cmake mysql
* Refactor add_definitions to target_compile_definition in cmake odbc
* Refactor add_definitions to target_compile_definition in cmake sqlite
* Refactor add_definitions to target_compile_definitions in platform specific cmake
* Add _DEBUG as compile definition
* Add build dependencies between Foundation-testrunner and TestApp, TestLibrary in cmake build
* Use cmake property to build shared libs
* Cleanup POCO_NO_AUTOMATIC_LIBS. Set only for Windows in cmake build system
* cleanup LIB_MODE_DEFINITIONS in cmake buld system
* Add POCO_STATIC for CppUnit
* Cleanup target link libraries and add option dependencies.
* Add dependencies management in cmake
* Update cmake documentation
* Squashed commit of the following:
commit 38c233f93fc8e9ad6e24d686c905eb18c86e19a7
Fix "invalid new-expression of abstract class type ApacheServerRequest" (#2231)
- abstract method "bool secure() const" defined in HTTPServerRequest was implemented in ApacheServerRequest, one of its derived classes
- a ap_log_error had one of its parameters changed for fixing a warning "passing NULL to non-pointer argument"
- minor indentation problems corrected
commit 4cbdfbe828943871618172f9e042176f115d61d8
Fix build dependencies
* Improve database cmake build dependencies
* Update doc
* Update doc
* Update cmake build commands
* Set public on target link libraries in cmake build system
* Fix PostgreSQL build
* Fix PostgreSQL build in cmake
* Fix PostgreSQL from SQL to Data
* Squashed commit of the following:
commit 1ba7d5dcbfb8d07860dd4efda33b31bedf6184c4
Add missing cmake file
* Set path to PostgresSQL in AppVoyer
* Try to fix AppVeyor build
* show dir in appvoyer
* Disable PostgreSQL build on Appvoyer
* Refactor add_definitions to target_compile_definitions