summaryrefslogtreecommitdiffstats
path: root/recipes-core/openjdk/openjdk-6/icedtea-hotspot-loadavg.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-core/openjdk/openjdk-6/icedtea-hotspot-loadavg.patch')
-rw-r--r--recipes-core/openjdk/openjdk-6/icedtea-hotspot-loadavg.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/recipes-core/openjdk/openjdk-6/icedtea-hotspot-loadavg.patch b/recipes-core/openjdk/openjdk-6/icedtea-hotspot-loadavg.patch
new file mode 100644
index 0000000..7da41fd
--- /dev/null
+++ b/recipes-core/openjdk/openjdk-6/icedtea-hotspot-loadavg.patch
@@ -0,0 +1,28 @@
1Index: icedtea6-1.8/build/openjdk/hotspot/src/os/linux/vm/os_linux.cpp
2===================================================================
3--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2010-06-09 22:16:09.406334411 +0200
4+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2010-06-09 22:19:38.952152043 +0200
5@@ -4325,7 +4325,22 @@
6 // Linux doesn't yet have a (official) notion of processor sets,
7 // so just return the system wide load average.
8 int os::loadavg(double loadavg[], int nelem) {
9- return ::getloadavg(loadavg, nelem);
10+
11+ FILE *LOADAVG;
12+ double avg[3] = { 0.0, 0.0, 0.0 };
13+ int i, res = -1;;
14+
15+ if ((LOADAVG = fopen("/proc/loadavg", "r"))) {
16+ fscanf(LOADAVG, "%lf %lf %lf", &avg[0], &avg[1], &avg[2]);
17+ res = 0;
18+ fclose(LOADAVG);
19+ }
20+
21+ for (i = 0; (i < nelem) && (i < 3); i++) {
22+ loadavg[i] = avg[i];
23+ }
24+
25+ return res;
26 }
27
28 void os::pause() {