axiom-synchronization
Use when needing thread-safe primitives for performance-critical code. Covers Mutex (iOS 18+), OSAllocatedUnfairLock (iOS 16+), Atomic types, when to use locks vs actors, deadlock prevention with Swift Concurrency.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Use when needing thread-safe primitives for performance-critical code. Covers Mutex (iOS 18+), OSAllocatedUnfairLock (iOS 16+), Atomic types, when to use locks vs actors, deadlock prevention with Swift Concurrency.
How to use
Zainstaluj umiejętność w swoim projekcie Claude/Copilot, dodając ścieżkę do repozytorium CharlesWiltgen/Axiom do konfiguracji pluginów.
Zaimportuj moduł Synchronization w pliku Swift, w którym potrzebujesz prymitywów:
import Synchronizationdla Mutex i typów atomowych (iOS 18+) lubimport osdla OSAllocatedUnfairLock (iOS 16+).Wybierz odpowiedni prymityw na podstawie przypadku użycia: użyj Mutex do operacji mikrosekundowych i ochrony pojedynczych właściwości, OSAllocatedUnfairLock gdy potrzebujesz stabilnego adresu pamięci, lub typy atomowe do liczników wysokiej częstotliwości bez blokad.
Zdefiniuj zmienną chronioną, na przykład
let mutex = Mutex<Int>(0)dla licznika całkowitego, i uzyskaj dostęp do wartości wyłącznie przez zamknięcia:mutex.withLock { $0 += 1 }.Dla operacji nieblokujących spróbuj uzyskać blokadę warunkową:
if let value = mutex.withLockIfAvailable({ $0 }) { }, aby uniknąć zawieszenia wątku.Zapoznaj się z tabelą decyzyjną w dokumentacji, aby rozstrzygnąć między Mutex a aktorami — aktorzy są lepsi dla złożonych przepływów asynchronicznych, a Mutex dla operacji wymagających natychmiastowego dostępu bez async hop.