File tree Expand file tree Collapse file tree 4 files changed +28
-2
lines changed
library/src/libdaemonjvm/internal Expand file tree Collapse file tree 4 files changed +28
-2
lines changed Original file line number Diff line number Diff line change
1
+ package libdaemonjvm .internal ;
2
+
3
+ public class IsRunning {
4
+ public Boolean isRunning (int pid ) {
5
+ return null ;
6
+ }
7
+ }
Original file line number Diff line number Diff line change
1
+ package libdaemonjvm .internal ;
2
+
3
+ import com .oracle .svm .core .annotate .Substitute ;
4
+ import com .oracle .svm .core .annotate .TargetClass ;
5
+ import com .oracle .svm .core .posix .headers .Signal ;
6
+ import org .graalvm .nativeimage .Platform ;
7
+ import org .graalvm .nativeimage .Platforms ;
8
+
9
+ import java .nio .file .Path ;
10
+
11
+ @ TargetClass (className = "libdaemonjvm.internal.IsRunning" )
12
+ @ Platforms ({Platform .LINUX .class , Platform .DARWIN .class })
13
+ final class IsRunningSubst {
14
+ @ Substitute
15
+ Boolean isRunning (int pid ) {
16
+ return Signal .kill (pid , 0 ) == 0 ;
17
+ }
18
+ }
Original file line number Diff line number Diff line change @@ -12,7 +12,9 @@ object LockProcess {
12
12
sys.error(" Cannot get PID" )
13
13
}
14
14
def isRunning (pid : Int ): Boolean =
15
- Processes .isRunning(pid)
15
+ Option ((new IsRunning ).isRunning(pid)).map(b => (b : Boolean )).getOrElse {
16
+ Processes .isRunning(pid)
17
+ }
16
18
}
17
19
18
20
def default : LockProcess =
Original file line number Diff line number Diff line change 2
2
3
3
import com .oracle .svm .core .annotate .Substitute ;
4
4
import com .oracle .svm .core .annotate .TargetClass ;
5
- import com .oracle .svm .core .posix .headers .Signal ;
6
5
import com .oracle .svm .core .posix .headers .Unistd ;
7
6
import org .graalvm .nativeimage .Platform ;
8
7
import org .graalvm .nativeimage .Platforms ;
You can’t perform that action at this time.
0 commit comments