And drop the three global variables, we have a reference to the counter everywhere now.
Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Reviewed-by: Jeremy Huddleston <jerem...@apple.com> --- Changes to v1: - adjustments for SysCounterGetPrivate instead of previous macro Xext/sync.c | 47 ++++++++++++++++++++++++++++------------------- 1 files changed, 28 insertions(+), 19 deletions(-) diff --git a/Xext/sync.c b/Xext/sync.c index 050a96e..4c63f64 100644 --- a/Xext/sync.c +++ b/Xext/sync.c @@ -2711,9 +2711,10 @@ SyncInitServerTime(void) * IDLETIME implementation */ -static SyncCounter *IdleTimeCounter; -static XSyncValue *pIdleTimeValueLess; -static XSyncValue *pIdleTimeValueGreater; +typedef struct { + XSyncValue *value_less; + XSyncValue *value_greater; +} IdleCounterPriv; static void IdleTimeQueryValue (pointer pCounter, CARD64 *pValue_return) @@ -2725,9 +2726,10 @@ IdleTimeQueryValue (pointer pCounter, CARD64 *pValue_return) static void IdleTimeBlockHandler(pointer pCounter, struct timeval **wt, pointer LastSelectMask) { - SyncCounter *counter = IdleTimeCounter; - XSyncValue *less = pIdleTimeValueLess, - *greater = pIdleTimeValueGreater; + SyncCounter *counter = pCounter; + IdleCounterPriv *priv = SysCounterGetPrivate(counter); + XSyncValue *less = priv->value_less, + *greater = priv->value_greater; XSyncValue idle, old_idle; SyncTriggerList *list = counter->sync.pTriglist; SyncTrigger *trig; @@ -2801,10 +2803,11 @@ IdleTimeBlockHandler(pointer pCounter, struct timeval **wt, pointer LastSelectMa static void IdleTimeWakeupHandler (pointer pCounter, int rc, pointer LastSelectMask) { - SyncCounter *counter = IdleTimeCounter; + SyncCounter *counter = pCounter; + IdleCounterPriv *priv = SysCounterGetPrivate(counter); + XSyncValue *less = priv->value_less, + *greater = priv->value_greater; XSyncValue idle; - XSyncValue *less = pIdleTimeValueLess, - *greater = pIdleTimeValueGreater; if (!less && !greater) return; @@ -2814,7 +2817,7 @@ IdleTimeWakeupHandler (pointer pCounter, int rc, pointer LastSelectMask) if ((greater && XSyncValueGreaterOrEqual (idle, *greater)) || (less && XSyncValueLessOrEqual (idle, *less))) { - SyncChangeCounter (counter, idle); + SyncChangeCounter ((SyncCounter*)pCounter, idle); } } @@ -2822,8 +2825,10 @@ static void IdleTimeBracketValues (pointer pCounter, CARD64 *pbracket_less, CARD64 *pbracket_greater) { - XSyncValue *less = pIdleTimeValueLess, - *greater = pIdleTimeValueGreater; + SyncCounter *counter = pCounter; + IdleCounterPriv *priv = SysCounterGetPrivate(counter); + XSyncValue *less = priv->value_less, + *greater = priv->value_greater; Bool registered = (less || greater); if (registered && !pbracket_less && !pbracket_greater) @@ -2839,8 +2844,8 @@ IdleTimeBracketValues (pointer pCounter, CARD64 *pbracket_less, pCounter); } - pIdleTimeValueGreater = pbracket_greater; - pIdleTimeValueLess = pbracket_less; + priv->value_greater = pbracket_greater; + priv->value_less = pbracket_less; } static void @@ -2848,14 +2853,18 @@ SyncInitIdleTime (void) { CARD64 resolution; XSyncValue idle; + IdleCounterPriv *priv = malloc(sizeof(IdleCounterPriv)); + SyncCounter *idle_time_counter; IdleTimeQueryValue (NULL, &idle); XSyncIntToValue (&resolution, 4); - IdleTimeCounter = SyncCreateSystemCounter ("IDLETIME", idle, resolution, - XSyncCounterUnrestricted, - IdleTimeQueryValue, - IdleTimeBracketValues); + idle_time_counter = SyncCreateSystemCounter("IDLETIME", idle, resolution, + XSyncCounterUnrestricted, + IdleTimeQueryValue, + IdleTimeBracketValues); - pIdleTimeValueLess = pIdleTimeValueGreater = NULL; + priv->value_less = priv->value_greater = NULL; + + idle_time_counter->pSysCounterInfo->private = priv; } -- 1.7.7.6 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel