diff options
author | Niclas Eklund <[email protected]> | 2011-06-21 16:23:36 +0200 |
---|---|---|
committer | Niclas Eklund <[email protected]> | 2011-06-21 16:23:36 +0200 |
commit | b331676b2fa755d767fc51b65ed6d99e1c20d7a2 (patch) | |
tree | f075cca50ddae4e08d18e26b6ebdf0ae3799c1fd /lib/ssh/src/ssh_sftp.erl | |
parent | 5eec30647ab41ad9a0c9911d2e4e300ecb501333 (diff) | |
download | otp-b331676b2fa755d767fc51b65ed6d99e1c20d7a2.tar.gz otp-b331676b2fa755d767fc51b65ed6d99e1c20d7a2.tar.bz2 otp-b331676b2fa755d767fc51b65ed6d99e1c20d7a2.zip |
OTP-9386 - Calling ssh_sftp:stop_channel/1 resulted in that the trap_exit flag was set to true for the invoking process.
Diffstat (limited to 'lib/ssh/src/ssh_sftp.erl')
-rwxr-xr-x | lib/ssh/src/ssh_sftp.erl | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/ssh/src/ssh_sftp.erl b/lib/ssh/src/ssh_sftp.erl index 59e09fdd0f..d09f497588 100755 --- a/lib/ssh/src/ssh_sftp.erl +++ b/lib/ssh/src/ssh_sftp.erl @@ -130,9 +130,9 @@ start_channel(Host, Port, Opts) -> end. stop_channel(Pid) -> - case process_info(Pid, [trap_exit]) of - [{trap_exit, Bool}] -> - process_flag(trap_exit, true), + case is_process_alive(Pid) of + true -> + OldValue = process_flag(trap_exit, true), link(Pid), exit(Pid, ssh_sftp_stop_channel), receive @@ -145,9 +145,9 @@ stop_channel(Pid) -> ok end end, - process_flag(trap_exit, Bool), + process_flag(trap_exit, OldValue), ok; - undefined -> + false -> ok end. |