File tree Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ public class SwiftAstGenerator {
55 private var srcDir : URL
66 private var outputDir : URL
77 private var prettyPrint : Bool
8+ private let availableProcessors = ProcessInfo . processInfo. activeProcessorCount
89
910 public init ( srcDir: URL , outputDir: URL , prettyPrint: Bool ) throws {
1011 self . srcDir = srcDir
@@ -63,6 +64,11 @@ public class SwiftAstGenerator {
6364 }
6465
6566 private func iterateSwiftFiles( at url: URL ) {
67+ let queue = OperationQueue ( )
68+ queue. name = " io.joern.swiftastgen.iteratequeue "
69+ queue. qualityOfService = . userInitiated
70+ queue. maxConcurrentOperationCount = availableProcessors
71+
6672 if let enumerator = FileManager . default. enumerator (
6773 at: url,
6874 includingPropertiesForKeys: [ . isRegularFileKey] ,
@@ -72,11 +78,14 @@ public class SwiftAstGenerator {
7278 if fileAttributes. isRegularFile! && fileURL. pathExtension == " swift " {
7379 let relativeFilePath = fileURL. relativePath ( from: srcDir) !
7480 if !ignoreDirectory( name: " / \( relativeFilePath) " ) {
75- self . parseFile ( fileUrl: fileURL)
81+ queue. addOperation {
82+ self . parseFile ( fileUrl: fileURL)
83+ }
7684 }
7785 }
7886 }
7987 }
88+ queue. waitUntilAllOperationsAreFinished ( )
8089 }
8190
8291 public func generate( ) throws {
You can’t perform that action at this time.
0 commit comments