aboutsummaryrefslogtreecommitdiff
path: root/docs/mutexed.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/mutexed.md')
-rw-r--r--docs/mutexed.md34
1 files changed, 0 insertions, 34 deletions
diff --git a/docs/mutexed.md b/docs/mutexed.md
deleted file mode 100644
index 97357f39..00000000
--- a/docs/mutexed.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# Mutexed Data
-
-To serve the general case of synchronizing access to shared datastructures,
-Tomo uses the `mutexed` keyword, which allocates a mutex and some heap memory
-for a value. Access to the heap-allocated value's memory can only be obtained
-by using a `holding` block. `holding` blocks ensure that the underlying mutex
-is locked before entering the block and unlocked before leaving it (even if a
-short-circuiting control flow statement like `return` or `stop` is used). Here
-is a simple example:
-
-```tomo
-nums := mutexed [10, 20, 30]
-
->> nums
-= mutexed [Int]<0x12345678> : mutexed([Int])
-
-holding nums:
- # Inside this block, the type of `nums` is `&[Int]`
- >> nums
- = &[10, 20, 30] : &[Int]
-
-thread := Thread.new(func():
- holding nums:
- nums:insert(30)
-)
-
-holding nums:
- nums:insert(40)
-
-thread:join()
-```
-
-Without using a mutex, the code above could run into concurrency issues leading
-to data corruption.