File tree 1 file changed +11
-21
lines changed
1 file changed +11
-21
lines changed Original file line number Diff line number Diff line change 1
1
import { Logger } from './Logger' ;
2
2
import findProcess from 'find-process' ;
3
+ import { setTimeout as delay } from 'node:timers/promises' ;
3
4
import pidTree from 'pidtree' ;
4
5
5
6
const log = Logger . child ( {
@@ -33,30 +34,19 @@ export const killPsTree = async (
33
34
} , gracefulTimeout ) ;
34
35
35
36
await Promise . all (
36
- hangingPids . map ( ( pid ) => {
37
- return new Promise ( ( resolve ) => {
38
- const interval = setInterval ( async ( ) => {
39
- if ( hitTimeout ) {
40
- clearInterval ( interval ) ;
37
+ hangingPids . map ( async ( pid ) => {
38
+ // eslint-disable-next-line no-unmodified-loop-condition
39
+ while ( ! hitTimeout ) {
40
+ const processes = await findProcess ( 'pid' , pid ) ;
41
41
42
- resolve ( false ) ;
42
+ if ( processes . length === 0 ) {
43
+ hangingPids = hangingPids . filter ( ( hangingPid ) => hangingPid !== pid ) ;
43
44
44
- return ;
45
- }
45
+ break ;
46
+ }
46
47
47
- const processes = await findProcess ( 'pid' , pid ) ;
48
-
49
- if ( processes . length === 0 ) {
50
- hangingPids = hangingPids . filter (
51
- ( hangingPid ) => hangingPid !== pid ,
52
- ) ;
53
-
54
- clearInterval ( interval ) ;
55
-
56
- resolve ( true ) ;
57
- }
58
- } , 100 ) ;
59
- } ) ;
48
+ await delay ( 100 ) ;
49
+ }
60
50
} ) ,
61
51
) ;
62
52
You can’t perform that action at this time.
0 commit comments