use /dev/null as default out/err in startProcess.
--- a/UnixOS.st Fri Jul 23 01:19:29 1999 +0200
+++ b/UnixOS.st Fri Jul 23 09:34:53 1999 +0200
@@ -3077,29 +3077,35 @@
Use #monitorPid:action: for synchronization and exec status return,
or #killProcess: to stop it."
- |in out err shellAndArgs|
-
- anExternalInStream notNil ifTrue:[
- in := anExternalInStream fileDescriptor.
- ] ifFalse:[
- in := '/dev/null' asFilename readStream fileDescriptor
+ |in out err shellAndArgs rslt|
+
+ (in := anExternalInStream) isNil ifTrue:[
+ in := '/dev/null' asFilename readStream
].
- anExternalOutStream notNil ifTrue:[
- out := anExternalOutStream fileDescriptor.
+ (out := anExternalOutStream) isNil ifTrue:[
+ out := '/dev/null' asFilename writeStream
].
- anExternalErrStream notNil ifTrue:[
- err := anExternalErrStream fileDescriptor.
+ (err := anExternalErrStream) isNil ifTrue:[
+ anExternalOutStream isNil ifTrue:[
+ err := out
+ ] ifFalse:[
+ err := '/dev/null' asFilename writeStream
+ ]
].
shellAndArgs := self commandAndArgsForOSCommand:aCommandString.
- ^ self
- exec:(shellAndArgs at:1)
- withArguments:(shellAndArgs at:2)
- fileDescriptors:(Array with:in with:out with:err)
- closeDescriptors:nil
- fork:true
- newPgrp:false
- inDirectory:dir
+ rslt := self
+ exec:(shellAndArgs at:1)
+ withArguments:(shellAndArgs at:2)
+ fileDescriptors:(Array with:in fileDescriptor
+ with:out fileDescriptor
+ with:err fileDescriptor)
+ closeDescriptors:nil
+ fork:true
+ newPgrp:false
+ inDirectory:dir.
+
+ ^ rslt
"blocking at current prio (i.e. only higher prio threads execute):
@@ -3120,7 +3126,7 @@
The following will no longer work. monitorPid has disappeared
pid notNil ifTrue:[
- Processor monitorPid:pid action:[:OSstatus | sema signal ].
+ Processor monitorPid:pid action:[:OSstatus | sema signal ].
].
in close.
out close.
@@ -8644,6 +8650,6 @@
!UnixOperatingSystem class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Attic/UnixOS.st,v 1.67 1999-07-16 16:39:14 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/UnixOS.st,v 1.68 1999-07-23 07:34:53 cg Exp $'
! !
UnixOperatingSystem initialize!
--- a/UnixOperatingSystem.st Fri Jul 23 01:19:29 1999 +0200
+++ b/UnixOperatingSystem.st Fri Jul 23 09:34:53 1999 +0200
@@ -3077,29 +3077,35 @@
Use #monitorPid:action: for synchronization and exec status return,
or #killProcess: to stop it."
- |in out err shellAndArgs|
-
- anExternalInStream notNil ifTrue:[
- in := anExternalInStream fileDescriptor.
- ] ifFalse:[
- in := '/dev/null' asFilename readStream fileDescriptor
+ |in out err shellAndArgs rslt|
+
+ (in := anExternalInStream) isNil ifTrue:[
+ in := '/dev/null' asFilename readStream
].
- anExternalOutStream notNil ifTrue:[
- out := anExternalOutStream fileDescriptor.
+ (out := anExternalOutStream) isNil ifTrue:[
+ out := '/dev/null' asFilename writeStream
].
- anExternalErrStream notNil ifTrue:[
- err := anExternalErrStream fileDescriptor.
+ (err := anExternalErrStream) isNil ifTrue:[
+ anExternalOutStream isNil ifTrue:[
+ err := out
+ ] ifFalse:[
+ err := '/dev/null' asFilename writeStream
+ ]
].
shellAndArgs := self commandAndArgsForOSCommand:aCommandString.
- ^ self
- exec:(shellAndArgs at:1)
- withArguments:(shellAndArgs at:2)
- fileDescriptors:(Array with:in with:out with:err)
- closeDescriptors:nil
- fork:true
- newPgrp:false
- inDirectory:dir
+ rslt := self
+ exec:(shellAndArgs at:1)
+ withArguments:(shellAndArgs at:2)
+ fileDescriptors:(Array with:in fileDescriptor
+ with:out fileDescriptor
+ with:err fileDescriptor)
+ closeDescriptors:nil
+ fork:true
+ newPgrp:false
+ inDirectory:dir.
+
+ ^ rslt
"blocking at current prio (i.e. only higher prio threads execute):
@@ -3120,7 +3126,7 @@
The following will no longer work. monitorPid has disappeared
pid notNil ifTrue:[
- Processor monitorPid:pid action:[:OSstatus | sema signal ].
+ Processor monitorPid:pid action:[:OSstatus | sema signal ].
].
in close.
out close.
@@ -8644,6 +8650,6 @@
!UnixOperatingSystem class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.67 1999-07-16 16:39:14 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.68 1999-07-23 07:34:53 cg Exp $'
! !
UnixOperatingSystem initialize!