@@ -20,7 +20,7 @@ export function get (path, args) {
20
20
21
21
export function get_ ( path , args ) {
22
22
const env = customEnv ( )
23
- return getUnix ( path , args , env )
23
+ return getProcess ( path , args , env )
24
24
}
25
25
26
26
export function customEnv ( env = process . env ) {
@@ -43,7 +43,7 @@ export function customEnv (env = process.env) {
43
43
return env
44
44
}
45
45
46
- function getUnix ( path , args , env ) {
46
+ function getProcess ( path , args , env ) {
47
47
return new Promise ( ( resolve , reject ) => {
48
48
tcp . listen ( ) . then ( ( port ) => {
49
49
paths . fullPath ( path ) . then ( ( path ) => {
@@ -54,16 +54,27 @@ function getUnix (path, args, env) {
54
54
rows : 30 ,
55
55
env : env ,
56
56
cwd : cwd ,
57
- useConpty : true
57
+ useConpty : true ,
58
+ handleFlowControl : true
58
59
} )
59
60
60
61
let sock = socket ( ty )
61
62
62
- sock . catch ( ( err ) => reject ( err ) )
63
+ sock . catch ( ( err ) => {
64
+ reject ( err )
65
+ } )
63
66
64
67
let proc = {
65
68
ty : ty ,
66
- kill : ( ) => ty . kill ( ) ,
69
+ kill : ( ) => {
70
+ if ( ty . _readable || ty . _writable ) {
71
+ try {
72
+ ty . kill ( )
73
+ } catch ( err ) {
74
+ console . log ( err ) ;
75
+ }
76
+ }
77
+ } ,
67
78
interrupt : ( ) => ty . write ( '\x03' ) ,
68
79
socket : sock ,
69
80
onExit : ( f ) => ty . on ( 'exit' , f ) ,
@@ -84,17 +95,6 @@ function getUnix (path, args, env) {
84
95
} )
85
96
}
86
97
87
- function freePort ( ) {
88
- return new Promise ( ( resolve ) => {
89
- let server = net . createServer ( )
90
- server . listen ( 0 , '127.0.0.1' , ( ) => {
91
- let port = server . address ( ) . port
92
- server . close ( )
93
- resolve ( port )
94
- } )
95
- } )
96
- }
97
-
98
98
function socket ( ty ) {
99
99
conn = tcp . next ( )
100
100
failure = new Promise ( ( resolve , reject ) => {
0 commit comments