Skip to content

Commit 2a18431

Browse files
committed
javaOSBean() dedupe
1 parent 6f66686 commit 2a18431

File tree

4 files changed

+16
-15
lines changed

4 files changed

+16
-15
lines changed

+stdlib/cpu_load.m

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,7 @@
88

99
function L = cpu_load()
1010

11-
if stdlib.isoctave()
12-
b = javaMethod("getOperatingSystemMXBean", "java.lang.management.ManagementFactory");
13-
else
14-
b = java.lang.management.ManagementFactory.getOperatingSystemMXBean();
15-
end
11+
b = javaOSBean();
1612

1713
if stdlib.java_api() < 14
1814
% https://docs.oracle.com/en/java/javase/21/docs/api/jdk.management/com/sun/management/OperatingSystemMXBean.html#getSystemCpuLoad()

+stdlib/private/javaOSBean.m

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
function b = javaOSBean()
2+
3+
try
4+
b = java.lang.management.ManagementFactory.getOperatingSystemMXBean();
5+
catch e
6+
if strcmp(e.identifier, "Octave:undefined-function")
7+
b = javaMethod("getOperatingSystemMXBean", "java.lang.management.ManagementFactory");
8+
else
9+
rethrow(e);
10+
end
11+
end
12+
13+
end

+stdlib/ram_free.m

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@
77

88
function freebytes = ram_free()
99

10-
if stdlib.isoctave()
11-
b = javaMethod("getOperatingSystemMXBean", "java.lang.management.ManagementFactory");
12-
else
13-
b = java.lang.management.ManagementFactory.getOperatingSystemMXBean();
14-
end
10+
b = javaOSBean();
1511

1612
if stdlib.java_api() < 14
1713
freebytes = b.getFreePhysicalMemorySize();

+stdlib/ram_total.m

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@
77

88
function bytes = ram_total()
99

10-
if stdlib.isoctave()
11-
b = javaMethod("getOperatingSystemMXBean", "java.lang.management.ManagementFactory");
12-
else
13-
b = java.lang.management.ManagementFactory.getOperatingSystemMXBean();
14-
end
10+
b = javaOSBean();
1511

1612
if stdlib.java_api() < 14
1713
bytes = b.getTotalPhysicalMemorySize();

0 commit comments

Comments
 (0)