aboutsummaryrefslogtreecommitdiff
path: root/docs/mutexed.md
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-03-31 02:11:03 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-03-31 02:11:03 -0400
commit7a172be6213839a3d023ba21c3bafd7540a4bfe8 (patch)
tree5646ba0e4c0690fe64711fb77658308541de695b /docs/mutexed.md
parentd3655740cc6a8e6c4788946af412065fb52f51dc (diff)
Remove threads and mutexed data from the language in favor of a
module-based approach
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.