<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-legacy-support.
</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/dad0f6a15b5ffbb9cc1d782826d86917086c989a">https://github.com/macports/macports-legacy-support/commit/dad0f6a15b5ffbb9cc1d782826d86917086c989a</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit dad0f6a15b5ffbb9cc1d782826d86917086c989a
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Wed Oct 9 15:29:29 2024 -0700
<span style='display:block; white-space:pre;color:#404040;'> Fix CLOCK_MONOTONIC for 10.4
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Referencing "kern.boottime" via sysctlbyname() on 10.4 doesn't work,
</span><span style='display:block; white-space:pre;color:#404040;'> though it works to use the numeric constants with sysctl(). It was
</span><span style='display:block; white-space:pre;color:#404040;'> always really dumb to be doing a string lookup on every call, anyway,
</span><span style='display:block; white-space:pre;color:#404040;'> and this is a speed improvement on all relevant platforms.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> TESTED:
</span><span style='display:block; white-space:pre;color:#404040;'> CLOCK_MONOTONIC now works and gives plausible results on all
</span><span style='display:block; white-space:pre;color:#404040;'> platforms.
</span>---
src/time.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/time.c b/src/time.c
</span><span style='display:block; white-space:pre;color:#808080;'>index e65ab49..69e43e9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/time.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/time.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -47,7 +47,9 @@ int clock_gettime( clockid_t clk_id, struct timespec *ts )
</span> {
struct timeval boottime;
size_t boottime_len = sizeof(boottime);
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ret = sysctlbyname("kern.boottime", &boottime, &boottime_len, NULL, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int bt_mib[] = {CTL_KERN, KERN_BOOTTIME};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t bt_miblen = sizeof(bt_mib) / sizeof(bt_mib[0]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ret = sysctl(bt_mib, bt_miblen, &boottime, &boottime_len, NULL, 0);
</span> if (ret != KERN_SUCCESS) { return ret; }
struct timeval tv;
ret = gettimeofday(&tv, NULL);
</pre><pre style='margin:0'>
</pre>