Skip to content

Commit 1699d14

Browse files
committed
Common: ensures thread safety of ffTimeInitQpcMultiplier
1 parent 501746a commit 1699d14

2 files changed

Lines changed: 8 additions & 6 deletions

File tree

src/common/impl/time.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,12 @@ FFTimeGetAgeResult ffTimeGetAge(uint64_t birthMs, uint64_t nowMs)
8484

8585
#ifdef _WIN32
8686
double ffQpcMultiplier;
87+
88+
__attribute__((constructor))
89+
static void ffTimeInitQpcMultiplier(void)
90+
{
91+
LARGE_INTEGER frequency;
92+
QueryPerformanceFrequency(&frequency);
93+
ffQpcMultiplier = 1000. / (double) frequency.QuadPart;
94+
}
8795
#endif

src/common/time.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,6 @@ static inline double ffTimeGetTick(void) //In msec
2525
{
2626
#ifdef _WIN32
2727
extern double ffQpcMultiplier;
28-
if (ffQpcMultiplier == 0)
29-
{
30-
LARGE_INTEGER frequency;
31-
QueryPerformanceFrequency(&frequency);
32-
ffQpcMultiplier = 1000. / (double) frequency.QuadPart;
33-
}
3428
LARGE_INTEGER start;
3529
QueryPerformanceCounter(&start);
3630
return (double) start.QuadPart * ffQpcMultiplier;

0 commit comments

Comments
 (0)