@@ -12,7 +12,6 @@ public class DirectoryWatcher {
1212
1313 enum Error : ErrorProtocol {
1414 case cannotOpenPath
15- case cannotCreateSource
1615 }
1716
1817 public typealias CompletionCallback = ( ) -> ( )
@@ -25,8 +24,8 @@ public class DirectoryWatcher {
2524 private var directoryChanging = false
2625 private var oldDirectoryInfo = [ FileInfo? ] ( )
2726
28- init ( URL : Foundation . URL , eventMask: DispatchSource . FileSystemEvent = . write) {
29- watchedURL = URL
27+ init ( in watchedURL : URL , eventMask: DispatchSource . FileSystemEvent = . write) {
28+ self . watchedURL = watchedURL
3029 self . eventMask = eventMask
3130 }
3231
@@ -48,35 +47,28 @@ public class DirectoryWatcher {
4847 throw Error . cannotOpenPath
4948 }
5049
51- let cleanUp : ( ) -> ( ) = {
52- close ( fd)
53- }
54-
5550 source = DispatchSource . fileSystemObject ( fileDescriptor: fd, eventMask: eventMask, queue: queue)
5651
5752 source? . setEventHandler { [ weak self] in
5853 self ? . waitForDirectoryToFinishChanging ( )
5954 }
6055
61- source? . setCancelHandler ( handler: cleanUp)
56+ source? . setCancelHandler {
57+ close ( fd)
58+ }
6259
6360 source? . resume ( )
6461 }
6562
6663 public func stop( ) {
67- guard let src = source else {
68- return
69- }
70-
71- src. cancel ( )
64+ source? . cancel ( )
7265 }
7366
7467 private func waitForDirectoryToFinishChanging( ) {
7568 if ( !directoryChanging) {
7669 directoryChanging = true
7770
7871 oldDirectoryInfo = self . directoryInfo ( )
79- // print(oldDirectoryInfo)
8072
8173 let timer = Timer ( timeInterval: 0.5 , target: self , selector: #selector( checkDirectoryInfo ( _: ) ) , userInfo: nil , repeats: true )
8274 RunLoop . main ( ) . add ( timer, forMode: RunLoopMode . commonModes)
0 commit comments