scripts/mosh: Use fork instead of threads

For better support of non-threaded Perl installations.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
This commit is contained in:
Anders Kaseorg
2012-03-06 17:24:22 -05:00
committed by Keith Winstein
parent b59f0f1482
commit 28f9cf7e4a
+7 -4
View File
@@ -74,7 +74,7 @@ delete $ENV{ 'MOSH_PREDICTION_DISPLAY' };
if ( defined $fake_proxy ) {
use Errno qw(EINTR);
use IO::Socket::INET;
use threads;
use POSIX qw(_exit);
my ( $host, $port ) = @ARGV;
@@ -102,10 +102,13 @@ if ( defined $fake_proxy ) {
}
}
my $thr = threads->create(sub { cat $sock, \*STDOUT; $sock->shutdown( 0 ); })
or die "$0: create thread: $!\n";
defined( my $pid = fork ) or die "$0: fork: $!\n";
if ( $pid == 0 ) {
cat $sock, \*STDOUT; $sock->shutdown( 0 );
_exit 0;
}
cat \*STDIN, $sock; $sock->shutdown( 1 );
$thr->join;
waitpid $pid, 0;
exit;
}