[squeak-dev] Re: Unix OSProcess error

osp at aloha.com osp at aloha.com
Thu Aug 6 11:11:03 UTC 2009


> On Thu, Aug 06, 2009 at 01:08:35PM -0700, Andreas Raab wrote:
> > David T. Lewis wrote:
> > >If you can send me an example of something that you are doing, I'll try to
> > >suggest something more specific to address the problem. I'm away from 
> > >Squeak
> > >at the moment, so it may take me a while to respond.
> > 
> > We're doing stuff along the lines of:
> > 
> > "fire off the external command"
> > cmd := PipeableOSProcess command: '/home/qwaq/server/script.sh'
> > 	environment: nil
> > 	workingDir: nil
> > 	input: nil
> > 	output: nil
> > 	error: nil
> > 	errorPipelineStream: nil.
> > 
> > "wait for completion"
> > start := Time millisecondClockValue.
> > [cmd isComplete not and:[(Time millisecondsSince: start) < deadline]]
> > 	whileTrue:[(Delay forMilliseconds: 100) wait].
> > cmd isComplete ifFalse:[^self error: 'timeout'].
> > 
> > descriptors := cmd outputAndError.
> > "... processing of output and error omitted ..."
> > 
> > And that's it. Is there anything that we need to clean up here?
> 
> Probably yes. From memory I think that 'cmd closePipes' will do what you
> need. But I'm sure there are cleaner ways to do this, so I'll give you
> a better answer later on when I get home a few hours from now. I guess
> it's time I started carrying one of Bert's Squeak-on-a-stick solutions
> on my keychain ;)
> 
> Dave
> 

You might need a pipe close in the ifFalse branch of the cmd isComplete
statement. 


Gary Dunn
Open Slate Project





More information about the Squeak-dev mailing list