aboutsummaryrefslogtreecommitdiff
path: root/src/zencore/zencore.cpp
Commit message (Collapse)AuthorAgeFilesLines
* add support for OTLP logging/tracing (#599)Stefan Boberg2025-10-221-2/+0
| | | | | | | | - adds `zentelemetry` project which houses new functionality for serializing logs and traces in OpenTelemetry Protocol format (OTLP) - moved existing stats functionality from `zencore` to `zentelemetry` - adds `TRefCounted<T>` for vtable-less refcounting - adds `MemoryArena` class which allows for linear allocation of memory from chunks - adds `protozero` which is used to encode OTLP protobuf messages
* remove zenutil dependency in zenremotestore (#547)Dan Engelbrecht2025-10-031-0/+2
| | | | | | | | | * remove dependency to zenutil/workerpools.h from remoteprojectstore.cpp * remove dependency to zenutil/workerpools.h from buildstoragecache.cpp * remove unneded include * move jupiter helpers to zenremotestore * move parallelwork to zencore * remove zenutil dependency from zenremotestore * clean up test project dependencies - use indirect dependencies
* Make sure we call the previous terminate handle if present when we intercept ↵Dan Engelbrecht2025-09-261-12/+12
| | | | | | terminate calls (#514) Improvement: Make sure we call the previous terminate handle if present when we intercept terminate calls Improvement: Avoid allocating memory for call stack in terminate handle and assert callback
* add EMode to WorkerTheadPool to avoid thread starvation (#492)Dan Engelbrecht2025-09-101-3/+4
| | | - Improvement: Add a new mode to worker thread pools to avoid starvation of workers which could cause long stalls due to other work begin queued up. UE-305498
* de/stringbuilder safety (#456)Dan Engelbrecht2025-08-051-1/+8
| | | | | | - Improvement: Safeguard FormatCallstack to not throw exceptions when building the callstack string - Improvement: Limit thread name length when setting it for debugger use - Improvemnet: Don't allow assert callbacks to throw exception - Improvement: When formatting log output for malformed attachments in a package message, allow the string buffer to grow instead of throwing exception
* move basicfile.h/cpp -> zencore (#273)Dan Engelbrecht2025-01-161-0/+2
| | | | | | move jupiter.h/cpp -> zenutil move packageformat.h/.cpp -> zenhttp zenutil now depends on zenhttp instead of the inverse
* added xxhash unit tests (which currently fail)Stefan Boberg2024-12-131-0/+5
|
* split zencore/memory.h -> memoryview.h, memcmp.h (#228)Stefan Boberg2024-11-251-1/+1
| | | | | | | minor clean-up `zencore/memory.h` used to contain a variety of things including `Malloc` support along with `MemoryView` etc since the memory allocator stuff moved into `zencore/memory/memory.h` there was basically only `MemoryView` and `MemCmp` in there which seemed better to split out into separate headers to avoid overloading `memory.h`
* improve logging on main failure (#111)Dan Engelbrecht2024-08-141-2/+2
| | | | | | * add support for indenting callstack output * Explicitly catch option-parse error and reduce log spam on bad parameters * add command line to sentry error reports * log command line at startup
* assert improvements (#72)Dan Engelbrecht2024-05-031-8/+61
| | | | | - Improvement: Asserts gives an immediate ERROR log entry with callstack and reason - Improvement: Asserts flushes the log before sending error report to Sentry
* improved assert (#37)Dan Engelbrecht2024-04-041-15/+96
| | | | - Improvement: Add file and line to ASSERT exceptions - Improvement: Catch call stack when throwing assert exceptions and log/output call stack at important places to provide more context to caller
* 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