aboutsummaryrefslogtreecommitdiff
path: root/zencore/include
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2023-02-09 16:49:51 +0100
committerGitHub <[email protected]>2023-02-09 07:49:51 -0800
commit2f872e432d4a77d1c2dd082cb97a0cbfddb3cc97 (patch)
treed631da0746b78cad7140784de4e637bcfb4e1cac /zencore/include
parentUpdate README.md (diff)
downloadzen-2f872e432d4a77d1c2dd082cb97a0cbfddb3cc97.tar.xz
zen-2f872e432d4a77d1c2dd082cb97a0cbfddb3cc97.zip
oplog upload/download (#214)
- Feature: Zen server endpoint `prj/{project}/oplog/{log}/chunks` to post multiple attachments in one request. - Feature: Zen server endpoint `prj/{project}/oplog/{log}/save` to save an oplog container. Accepts `CbObject` containing a compressed oplog and attachment references organized in blocks. - Feature: Zen server endpoint `prj/{project}/oplog/{log}/load` to request an oplog container. Responds with an `CbObject` containing a compressed oplog and attachment references organized in blocks. - Feature: Zen server endpoint `{project}/oplog/{log}/rpc` to initiate an import to or export from an external location and other operations. Use either JSon or CbPackage as payload. - CbObject/JSon RPC format for `import` and `export` methods: - CbObject RPC format for `getchunks` method, returns CbPackage with the found chunks, if all chunks are found the number of attachments matches number of chunks requested. - Feature: Zen server `{project}/oplog/{log}/{hash}` now accepts `HttpVerb::kPost` as well as `HttpVerb::kGet`. - Feature: Zen command line tool `oplog-export` to export an oplog to an external target using the zenserver oplog export endpoint. - Feature: Zen command line tool `oplog-import` to import an oplog from an external source using the zenserver oplog import endpoint.
Diffstat (limited to 'zencore/include')
-rw-r--r--zencore/include/zencore/thread.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/zencore/include/zencore/thread.h b/zencore/include/zencore/thread.h
index 2aad22061..a9c96d422 100644
--- a/zencore/include/zencore/thread.h
+++ b/zencore/include/zencore/thread.h
@@ -163,6 +163,15 @@ public:
std::ptrdiff_t Remaining() const { return Counter.load(); }
+ // If you want to add dynamic count, make sure to set the initial counter to 1
+ // and then do a CountDown() just before wait to not trigger the event causing
+ // false positive completion results.
+ void AddCount(std::ptrdiff_t Count)
+ {
+ std::atomic_ptrdiff_t Old = Counter.fetch_add(Count);
+ ZEN_ASSERT_SLOW(Old > 0);
+ }
+
bool Wait(int TimeoutMs = -1)
{
std::ptrdiff_t Old = Counter.load();