ich ein Thread-sichere Stück Skript in Ruby ausgeführt werden soll, die ein externes Programm aufruft, überprüft dann den Exit-Status des externen Programms. Was ist der beste Weg, es zu tun? Bisher habe ich $?
wurde überprüft, aber ich denke, ich bin immer eine Race Condition mit anderen Teilen des Programms.Gewinde sicher externer Prozess in Rubin, sowie die Überprüfung exitstatus
Hier einige Beispiel-Code:
Thread.new do
`external_program`
if $?.exitstatus == 0
# it worked.
else
# it didn't work.
end
end
etwas Idealer wie
, ich tun würdeProcess.new(`external_program`).exitstatus
, so dass die exitstatus
untrennbar mit dass Prozess gebunden war, eher als die letzte, die geschah zum Abschluss. Gibt es eine Möglichkeit, dies zu tun?
Ist das Skript Open-Source oder privat? –
@Andrew: Open Source (es ist mein Skript). – Peter