ggml : make ggml_time_init idempotent (#24422)
This commit is contained in:
+11
-1
@@ -525,7 +525,11 @@ const char * ggml_commit(void) {
|
|||||||
|
|
||||||
#if defined(_MSC_VER) || defined(__MINGW32__)
|
#if defined(_MSC_VER) || defined(__MINGW32__)
|
||||||
static int64_t timer_freq, timer_start;
|
static int64_t timer_freq, timer_start;
|
||||||
void ggml_time_init(void) {
|
static BOOL CALLBACK ggml_time_init_once(PINIT_ONCE once, PVOID param, PVOID *ctx) {
|
||||||
|
UNUSED(once);
|
||||||
|
UNUSED(param);
|
||||||
|
UNUSED(ctx);
|
||||||
|
|
||||||
LARGE_INTEGER t;
|
LARGE_INTEGER t;
|
||||||
QueryPerformanceFrequency(&t);
|
QueryPerformanceFrequency(&t);
|
||||||
timer_freq = t.QuadPart;
|
timer_freq = t.QuadPart;
|
||||||
@@ -535,6 +539,12 @@ void ggml_time_init(void) {
|
|||||||
// We subtract the program start time to reduce the likelihood of that happening.
|
// We subtract the program start time to reduce the likelihood of that happening.
|
||||||
QueryPerformanceCounter(&t);
|
QueryPerformanceCounter(&t);
|
||||||
timer_start = t.QuadPart;
|
timer_start = t.QuadPart;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
void ggml_time_init(void) {
|
||||||
|
static INIT_ONCE once = INIT_ONCE_STATIC_INIT;
|
||||||
|
InitOnceExecuteOnce(&once, ggml_time_init_once, NULL, NULL);
|
||||||
}
|
}
|
||||||
int64_t ggml_time_ms(void) {
|
int64_t ggml_time_ms(void) {
|
||||||
LARGE_INTEGER t;
|
LARGE_INTEGER t;
|
||||||
|
|||||||
Reference in New Issue
Block a user