2001-11-12 Andrew Cagney * lib/remote.exp (local_exec, standard_close): Use SHELL background instead of tcl background to background the kill processes. Work around cygwin/expect problem. Index: lib/remote.exp =================================================================== RCS file: /cvs/src/src/dejagnu/lib/remote.exp,v retrieving revision 1.2 diff -p -r1.2 remote.exp *** remote.exp 2001/10/30 15:20:05 1.2 --- remote.exp 2001/11/12 18:12:52 *************** proc local_exec { commandline inp outp t *** 179,185 **** # command in order to execute the execution. (English. Gotta love it.) if { ! $got_eof } { verbose "killing $pid $pgid"; ! exec sh -c "exec > /dev/null 2>&1 && (kill -2 $pgid || kill -2 $pid) && sleep 5 && (kill -15 $pgid || kill $pid) && sleep 5 && (kill -9 $pgid || kill -9 $pid)" &; } # This will hang if the kill doesn't work. Nothin' to do, and it's not ok. catch "close -i $spawn_id"; --- 179,188 ---- # command in order to execute the execution. (English. Gotta love it.) if { ! $got_eof } { verbose "killing $pid $pgid"; ! # This is very, very nasty. SH, instead of EXPECT, is used to ! # run this in the background since, on cygwin, a strange file ! # I/O error occures. ! exec sh -c "exec > /dev/null 2>&1 && (kill -2 $pgid || kill -2 $pid) && sleep 5 && (kill -15 $pgid || kill $pid) && sleep 5 && (kill -9 $pgid || kill -9 $pid) &"; } # This will hang if the kill doesn't work. Nothin' to do, and it's not ok. catch "close -i $spawn_id"; *************** proc standard_close { host } { *** 314,323 **** } if { $pid > 0 } { verbose "doing kill, pid is $pid"; ! # This is very, very nasty. Then again, if after did something ! # reasonable... set pgid "-[join $pid { -}]"; ! exec sh -c "exec > /dev/null 2>&1 && (kill -2 $pgid || kill -2 $pid) && sleep 5 && (kill $pgid || kill $pid) && sleep 5 && (kill -9 $pgid || kill -9 $pid)" &; } verbose "pid is $pid"; catch "close -i $shell_id"; --- 317,327 ---- } if { $pid > 0 } { verbose "doing kill, pid is $pid"; ! # This is very, very nasty. SH, instead of EXPECT, is used to ! # run this in the background since, on cygwin, a strange file ! # I/O error occures. set pgid "-[join $pid { -}]"; ! exec sh -c "exec > /dev/null 2>&1 && (kill -2 $pgid || kill -2 $pid) && sleep 5 && (kill $pgid || kill $pid) && sleep 5 && (kill -9 $pgid || kill -9 $pid) &"; } verbose "pid is $pid"; catch "close -i $shell_id";