From 9d1cf4be655bd943cbb8aa91fdca37bb6ea0883e Mon Sep 17 00:00:00 2001
From: Lann Martin
Date: Tue, 18 Mar 2025 13:57:23 -0400
Subject: [PATCH] Document mixing increment with other ops
This is not necessarily the desired behavior but reflects the actual
behavior of current implementations.
---
imports.md | 2 ++
wit/atomic.wit | 3 +++
2 files changed, 5 insertions(+)
diff --git a/imports.md b/imports.md
index ca31a78..ad102f6 100644
--- a/imports.md
+++ b/imports.md
@@ -242,6 +242,8 @@ that is needed to ensure the atomicity of the operation
returns the new value.
If the key does not exist in the store, it creates a new key-value pair with the value set
to the given delta.
+The result of using both increment and any other operation in this spec with the same key
+is implementation-dependent.
If any other error occurs, it returns an Err(error).
Params
diff --git a/wit/atomic.wit b/wit/atomic.wit
index 87d562a..a1ec4d2 100644
--- a/wit/atomic.wit
+++ b/wit/atomic.wit
@@ -37,6 +37,9 @@ interface atomics {
/// If the key does not exist in the store, it creates a new key-value pair with the value set
/// to the given delta.
///
+ /// The result of using both `increment` and any other operation in this spec with the same key
+ /// is implementation-dependent.
+ ///
/// If any other error occurs, it returns an `Err(error)`.
increment: func(bucket: borrow, key: string, delta: s64) -> result;