mirror of
https://github.com/Stichting-MINIX-Research-Foundation/pkgsrc-ng.git
synced 2025-09-23 03:33:34 -04:00
45 lines
1.6 KiB
C
45 lines
1.6 KiB
C
$NetBSD: patch-src_runtime_gc_gc-stats.h,v 1.1 2016/07/03 18:52:32 dholland Exp $
|
|
|
|
Use struct timeval instead of blithely assuming that some private
|
|
struct declaration is always bit compatible with it. (Because it
|
|
isn't.) From PR 40954.
|
|
|
|
--- src/runtime/gc/gc-stats.h.orig 2009-03-03 18:23:38.000000000 -0500
|
|
+++ src/runtime/gc/gc-stats.h 2009-03-03 18:25:04.000000000 -0500
|
|
@@ -16,6 +16,7 @@ extern void ReportVM (ml_state_t *msp, i
|
|
|
|
#define START_GC_PAUSE(HEAP) { \
|
|
if (StatsOn) { \
|
|
+ struct timeval tv; \
|
|
heap_t *__heap = (HEAP); \
|
|
stat_rec_t *__p = &(StatsBuf[NStatsRecs]); \
|
|
Unsigned32_t __n = (Addr_t)(msp->ml_allocPtr) - \
|
|
@@ -23,7 +24,10 @@ extern void ReportVM (ml_state_t *msp, i
|
|
CNTR_INCR(&(__heap->numAlloc), __n); \
|
|
__p->allocCnt = __heap->numAlloc; \
|
|
__p->numGens = 0; \
|
|
- gettimeofday(&(__p->startTime), NIL(struct timezone *)); \
|
|
+ gettimeofday(&tv, NIL(struct timezone *)); \
|
|
+ /* XXX breaks in 2038 */ \
|
|
+ __p->startTime.seconds = tv.tv_sec; \
|
|
+ __p->startTime.uSeconds = tv.tv_usec; \
|
|
} \
|
|
}
|
|
|
|
@@ -34,8 +38,11 @@ extern void ReportVM (ml_state_t *msp, i
|
|
|
|
#define STOP_GC_PAUSE() { \
|
|
if (StatsOn) { \
|
|
- gettimeofday(&(StatsBuf[NStatsRecs].stopTime), \
|
|
- NIL(struct timezone *)); \
|
|
+ struct timeval tv; \
|
|
+ gettimeofday(&tv, NIL(struct timezone *)); \
|
|
+ /* XXX breaks in 2038 */ \
|
|
+ StatsBuf[NStatsRecs].stopTime.seconds = tv.tv_sec; \
|
|
+ StatsBuf[NStatsRecs].stopTime.uSeconds = tv.tv_usec; \
|
|
STATS_FINISH(); \
|
|
} \
|
|
}
|
|
|
|
|