Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gfx/swift-multithreading

A demo code for synchronization in Swift
https://github.com/gfx/swift-multithreading

Last synced: 26 days ago
JSON representation

A demo code for synchronization in Swift

Awesome Lists containing this project

README

        

# Synchronization in Swift

Swift has no synchornozation functionality in the language,
but Foundation framework is available to synchronize the code.

## Use of `dispatch_sync()`

```swift
class Foo {
var value = 0
let sync = dispatch_queue_create("\(self.dynamicType).sync", DISPATCH_QUEUE_SERIAL)

func incrementWithSerialQueue() {
dispatch_sync(sync) {
self.value += 1
}
}

```

## Use of `objc_sync_enter()` and `objc_sync_exit()`

```swift
class AutoSync {
let object : AnyObject

init(_ obj : AnyObject) {
object = obj
objc_sync_enter(object)
}

deinit {
objc_sync_exit(object)
}
}

class Foo {
var value = 0

func incrementWithObjcSync() {
let lock = AutoSync(self)
self.value += 1
}
}
```