summaryrefslogtreecommitdiff
path: root/sysutils/p5-Sys-Load/files
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/p5-Sys-Load/files')
-rw-r--r--sysutils/p5-Sys-Load/files/patch-Load.pm20
-rw-r--r--sysutils/p5-Sys-Load/files/patch-Load.xs27
2 files changed, 47 insertions, 0 deletions
diff --git a/sysutils/p5-Sys-Load/files/patch-Load.pm b/sysutils/p5-Sys-Load/files/patch-Load.pm
new file mode 100644
index 000000000000..6654c8e67e08
--- /dev/null
+++ b/sysutils/p5-Sys-Load/files/patch-Load.pm
@@ -0,0 +1,20 @@
+--- Load.pm 2002-09-01 09:54:44.000000000 +0000
++++ Load.pm 2011-01-19 12:07:33.000000000 +0000
+@@ -17,17 +17,6 @@
+ bootstrap Sys::Load $VERSION;
+
+ # Preloaded methods go here.
+-
+-use constant UPTIME => "/proc/uptime";
+-
+-sub uptime {
+- open(FILE, UPTIME) || return 0;
+- my $line = <FILE>;
+- my($uptime, $idle) = split /\s+/, $line;
+- close FILE;
+- return $uptime;
+-}
+-
+ 1;
+
+ __END__
diff --git a/sysutils/p5-Sys-Load/files/patch-Load.xs b/sysutils/p5-Sys-Load/files/patch-Load.xs
new file mode 100644
index 000000000000..4e92cc0ffd9a
--- /dev/null
+++ b/sysutils/p5-Sys-Load/files/patch-Load.xs
@@ -0,0 +1,27 @@
+--- Load.xs 2002-08-31 02:00:32.000000000 +0000
++++ Load.xs 2011-01-19 12:07:14.000000000 +0000
+@@ -2,6 +2,7 @@
+ #include "perl.h"
+ #include "XSUB.h"
+ #include "stdlib.h"
++#include <time.h>
+
+
+ MODULE = Sys::Load PACKAGE = Sys::Load
+@@ -22,3 +23,16 @@
+ XPUSHs(sv_2mortal(newSVnv(load[2])));
+ }
+
++void
++uptime()
++PROTOTYPE:
++PREINIT:
++ struct timespec t;
++ int i;
++PPCODE:
++ i = clock_gettime(CLOCK_MONOTONIC, &t);
++ if(i == -1)
++ XSRETURN_EMPTY;
++ else {
++ XPUSHs(sv_2mortal(newSVnv(t.tv_sec)));
++ }