@@ -25,7 +25,8 @@ export class CodesService {
25
25
process . env . NODE_ENV === 'dev'
26
26
? path . join ( __dirname , '..' , 'tmp' )
27
27
: '/algoitni' ;
28
- private killSignal : NodeJS . Signals = 'SIGINT' ;
28
+ private readonly killSignal : NodeJS . Signals = 'SIGINT' ;
29
+ private readonly killCode : number = 130 ;
29
30
private readonly timeOut = 5000 ;
30
31
constructor ( ) {
31
32
if ( ! fs . existsSync ( this . tempDir ) ) {
@@ -40,7 +41,6 @@ export class CodesService {
40
41
try {
41
42
fs . writeFileSync ( filePath , code ) ;
42
43
const { stdout, stderr } = await this . runCommand ( filePaths , language ) ;
43
- this . logger . debug ( `${ stdout } , ${ stderr } ` ) ;
44
44
if ( stderr ) {
45
45
throw new RunningException ( stderr . trim ( ) ) ;
46
46
}
@@ -62,7 +62,6 @@ export class CodesService {
62
62
language : supportLang ,
63
63
) : Promise < runCommandResult > {
64
64
const commands = languageCommand ( language , filePaths ) ;
65
- this . logger . debug ( JSON . stringify ( commands ) ) ;
66
65
67
66
let command ;
68
67
if ( commands . length > 1 ) {
@@ -99,10 +98,10 @@ export class CodesService {
99
98
this . logger . log ( `child process exited with code ${ code } , ${ signal } ` ) ;
100
99
clearTimeout ( timer ) ;
101
100
const out = Buffer . concat ( stdout ) . toString ( ) ;
102
- const err =
103
- signal === this . killSignal
104
- ? Messages . TIMEOUT
105
- : Buffer . concat ( stderr ) . toString ( ) ;
101
+ let err = Buffer . concat ( stderr ) . toString ( ) ;
102
+ if ( this . isTimeout ( code , signal ) ) {
103
+ err = Messages . TIMEOUT ;
104
+ }
106
105
resolve ( { stdout : out , stderr : err } ) ;
107
106
} ) ;
108
107
} catch ( e ) {
@@ -164,4 +163,8 @@ export class CodesService {
164
163
path . join ( this . tempDir , `${ uuid } ${ distExtension } ` ) ,
165
164
] ;
166
165
}
166
+
167
+ isTimeout ( code : number , signal : NodeJS . Signals ) {
168
+ return code === this . killCode || signal === this . killSignal ;
169
+ }
167
170
}
0 commit comments