aboutsummaryrefslogtreecommitdiff
path: root/src/zencore/zencore.cpp
Commit message (Collapse)AuthorAgeFilesLines
* add yaml serialization support (#3)Stefan Boberg2024-03-261-0/+2
| | | | | | | this change adds serialization of payloads as YAML, but not parsing. The implementation is somewhat based on the JSON path, and may be collapsed eventually as it is possible to serialize JSON format using the same code it also separates out the JSON serialization into a separate file for ease of maintenance any HTTP request response may be formatted as yaml by using a `.yaml` suffix or an `Accept: text/yaml` header
* harden attach sponsor process (#14)Dan Engelbrecht2024-03-211-3/+8
| | | | | - Improvement: Delay exiting due to no sponsor processes by one second to handle race conditions - Improvement: Safer IsProcessRunning check - Improvement: make sure we can RequestApplicationExit safely from any thread
* various TSAN/ASAN/LeakAnalyzer fixes (#622)Stefan Boberg2023-12-191-2/+4
| | | | | | | | | * fix JobQueue test threading issue. The inner job queued with `QueueJob` would reference `I` from inside the captured closure which would subsequently disappear * made sure application exit is thread safe * don't try to access string data out of bounds * keep-alive flag is accessed from multiple threads * fix memory leaks in Zen upstream client code * TSAN fixes for Event
* basic ZEN_ASSERT_FORMAT implementation (#556)Stefan Boberg2023-11-211-0/+27
| | | includes porting some compact binary builder code to use it since it had vestiges of the UE-side asserts
* moved process handling code into separate h/cpp (#555)Stefan Boberg2023-11-201-0/+2
|
* factored out some compiler definitions etc into zenbase (#517)Stefan Boberg2023-11-071-1/+2
| | | | | this is a header-only library which mostly contains definitions to support different platforms and compilers. It is part of the zen codebase but is intended to be consumable separately to zenbase etc to support standalone transport plug-ins and similar.
* job queue and async oplog-import/export (#395)Dan Engelbrecht2023-09-131-0/+2
| | | | | | | | | | | | | | | | - Feature: New http endpoint for background jobs `/admin/jobs/status` which will return a response listing the currently active background jobs and their status - Feature: New http endpoint for background jobs information `/admin/jobs/status/{jobid}` which will return a response detailing status, pending messages and progress status - GET will return a response detailing status, pending messages and progress status - DELETE will mark the job for cancelling and return without waiting for completion - If status returned is "Complete" or "Aborted" the jobid will be removed from the server and can not be queried again - Feature: New zen command `jobs` to list, get info about and cancel background jobs - If no options are given it will display a list of active background jobs - `--jobid` accepts an id (returned from for example `oplog-export` with `--async`) and will return a response detailing status, pending messages and progress status for that job - `--cancel` can be added when `--jobid` is given which will request zenserver to cancel the background job - Feature: oplog import and export http rpc requests are now async operations that will run in the background - Feature: `oplog-export` and `oplog-import` now reports progress to the console as work progress by default - Feature: `oplog-export` and `oplog-import` can now be cancelled using Ctrl+C - Feature: `oplog-export` and `oplog-import` has a new option `--async` which will only trigger the work and report a background job id back
* Ensure WorkerThreadPool tests always runStefan Boberg2023-05-151-0/+2
|
* Gracefully exit if Ctrl-C is pressed (#293)Dan Engelbrecht2023-05-111-0/+6
| | | | | * Feature: Gracefully exit if Ctrl-C is pressed * Bugfix: Return error code on exit as set by application * changelog
* make logging tests run as part of zencore-testStefan Boberg2023-05-091-1/+3
|
* moved source directories into `/src` (#264)Stefan Boberg2023-05-021-0/+175
* moved source directories into `/src` * updated bundle.lua for new `src` path * moved some docs, icon * removed old test trees