Hallo!
In Anschluss an dieses Thema hier: Link im Forum habe ich nun ein anderes Problem.
Ich schreibe gerade das MD5.app programm neu, und möchte das richtig machen. Diesmal bewerfe ich den User nicht mehr mit hundert tausend threads, wie im Artikel beschrieben, sondern nur mit zweien. Aber auch hier gibt es wieder mal ein Problem - arbeite schon den ganzen Tag daran, komm aber nicht drauf.
Also.
Ich rufe einmal einen NSTask mit launchPath zum md5 util auf (/sbin/md5). Dem geb ich die arguments -q (für quiet mode) und für jede Datei, die ich überprüfen will, ein weiteres argument (z.b. /Users/matthias/Desktop/somefile.jpg, etc).
Wenn ich das im Terminal normal ausführe, geht es pipifeinst. Aber sowas von pipifein, dass es ein traum ist (mit tausenden von dateien, im übrigen. Darum geht es hier auch).
Das argument-array hat also -q + tausende filepaths drinnen (teste mit 1041 dateien).
Wie gesagt - in terminal.app funzt es perfektastisch.
Wenn ich jetzt den Task launche, und dann waitUntilExit "mache", waitet er until exodus, nicht until exit. Will heißen, es tut sich danach nix mehr. er kommt bis zu waitUntilExit und das war's dann. Hab eine halbe stunde schon gewartet. Im terminal läuft das gleiche unter 5 min ab.
hab eine NSPipe für standardOut und standardError. standardIn brauch ich in diesem Fall nicht, daher nicht gesetzt.
Ich bitte daher um eure Hilfe - mache ich was falsch? Oder liegt es an NSTask? Mit weniger Dateien funktioniert es (so um die 30 oder so... genau hab ich das nicht gecheckt)...
danke und liebe grüße,
oddy
In Anschluss an dieses Thema hier: Link im Forum habe ich nun ein anderes Problem.
Ich schreibe gerade das MD5.app programm neu, und möchte das richtig machen. Diesmal bewerfe ich den User nicht mehr mit hundert tausend threads, wie im Artikel beschrieben, sondern nur mit zweien. Aber auch hier gibt es wieder mal ein Problem - arbeite schon den ganzen Tag daran, komm aber nicht drauf.
Also.
Ich rufe einmal einen NSTask mit launchPath zum md5 util auf (/sbin/md5). Dem geb ich die arguments -q (für quiet mode) und für jede Datei, die ich überprüfen will, ein weiteres argument (z.b. /Users/matthias/Desktop/somefile.jpg, etc).
Wenn ich das im Terminal normal ausführe, geht es pipifeinst. Aber sowas von pipifein, dass es ein traum ist (mit tausenden von dateien, im übrigen. Darum geht es hier auch).
Das argument-array hat also -q + tausende filepaths drinnen (teste mit 1041 dateien).
Wie gesagt - in terminal.app funzt es perfektastisch.
Wenn ich jetzt den Task launche, und dann waitUntilExit "mache", waitet er until exodus, nicht until exit. Will heißen, es tut sich danach nix mehr. er kommt bis zu waitUntilExit und das war's dann. Hab eine halbe stunde schon gewartet. Im terminal läuft das gleiche unter 5 min ab.
hab eine NSPipe für standardOut und standardError. standardIn brauch ich in diesem Fall nicht, daher nicht gesetzt.
Ich bitte daher um eure Hilfe - mache ich was falsch? Oder liegt es an NSTask? Mit weniger Dateien funktioniert es (so um die 30 oder so... genau hab ich das nicht gecheckt)...
danke und liebe grüße,
oddy