Implement init/deinit of inotify system
Use RAII to handle inotify resource lifetime, i.e. initialize with actor creation and deinitialize with actor deletion.
This commit is contained in:
@@ -1,2 +1,16 @@
|
||||
actor Inotify {
|
||||
import CInotify
|
||||
|
||||
public actor Inotify {
|
||||
private let fd: Int32
|
||||
|
||||
public init() throws {
|
||||
self.fd = inotify_init1(Int32(IN_NONBLOCK | IN_CLOEXEC))
|
||||
guard self.fd >= 0 else {
|
||||
throw InotifyError.initFailed(errno: cinotify_get_errno())
|
||||
}
|
||||
}
|
||||
|
||||
deinit {
|
||||
cinotify_deinit(self.fd)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user