[swift-corelibs-dev] Swift DispatchSource not working
Darren Mo
darren.mo at me.com
Thu Jul 7 21:13:35 CDT 2016
I am trying to catch SIGWINCH (terminal window size changed) in Swift 3 (Xcode 8 beta 2). The following code should exit with a status of 1 when it receives SIGWINCH. But it never exits.
```swift
// compile with `xcrun -sdk macosx swiftc sigwinch.swift`
import Darwin
import Dispatch
let source = DispatchSource.signal(signal: SIGWINCH, queue: DispatchQueue.main)
source.setEventHandler {
exit(1)
}
source.resume()
dispatchMain()
```
The equivalent Objective-C code works as expected.
```objc
// compile with `xcrun -sdk macosx clang sigwinch.m`
#import <dispatch/dispatch.h>
#import <signal.h>
#import <stdlib.h>
int main() {
dispatch_source_t source = dispatch_source_create(DISPATCH_SOURCE_TYPE_SIGNAL,
SIGWINCH,
0,
dispatch_get_main_queue());
dispatch_source_set_event_handler(source, ^{
exit(1);
});
dispatch_resume(source);
dispatch_main();
}
```
What am I doing wrong?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-corelibs-dev/attachments/20160707/2edb378e/attachment.html>
More information about the swift-corelibs-dev
mailing list