diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2013-10-16 16:46:53 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2013-10-16 16:46:53 +1000 |
commit | 9de6938b88f42cbd768842a55a284c35d3892a4a (patch) | |
tree | 11522ef18d15a50c8aac2037efb6d242d1ae7ec3 | |
parent | d2bbabd9d7561022af1ba23c8119213cade813c0 (diff) |
Revert "sync: create slaved alarm so we don't miss any transitions"wip/xsync-transition-bug-59644
This reverts commit d2bbabd9d7561022af1ba23c8119213cade813c0.
-rw-r--r-- | Xext/sync.c | 85 | ||||
-rw-r--r-- | miext/sync/misyncstr.h | 6 |
2 files changed, 0 insertions, 91 deletions
diff --git a/Xext/sync.c b/Xext/sync.c index f93cff38b..6d346f688 100644 --- a/Xext/sync.c +++ b/Xext/sync.c @@ -322,88 +322,6 @@ SyncCheckTriggerFence(SyncTrigger * pTrigger, CARD64 unused) return (pFence == NULL || pFence->funcs.CheckTriggered(pFence)); } -/** - * Create an alarm that's the inverse of trigger and return it. - * if slave is NULL, allocate. - */ -static SyncAlarm* -CreateSlavedAlarmFromTrigger(SyncTrigger *trigger) -{ - SyncAlarm *alarm; - alarm = calloc(1, sizeof(*alarm)); - alarm->client = 0; - alarm->alarm_id = 0; - alarm->events = FALSE; - alarm->state = XSyncAlarmActive; - alarm->pEventClients = NULL; - alarm->trigger.pSync = trigger->pSync; - alarm->trigger.value_type = trigger->value_type; - alarm->trigger.test_value = trigger->test_value; - if (trigger->test_type == XSyncPositiveTransition) { - alarm->trigger.test_type = XSyncNegativeTransition; - alarm->trigger.CheckTrigger = SyncCheckTriggerNegativeTransition; - } else if (trigger->test_type == XSyncNegativeTransition) { - alarm->trigger.test_type = XSyncPositiveTransition; - alarm->trigger.CheckTrigger = SyncCheckTriggerPositiveTransition; - } else - BUG_WARN(trigger->test_type); - alarm->trigger.TriggerFired = trigger->TriggerFired; - alarm->trigger.CounterDestroyed = trigger->CounterDestroyed; - - return alarm; -} - -static void -UpdateSlaveAlarmFromTrigger(SyncAlarm *alarm, SyncTrigger *trigger) -{ - ErrorF("%s: for type %d, value %d current value %d\n", __func__, - trigger->test_type, - XSyncValueLow32(alarm->trigger.test_value), - XSyncValueLow32(trigger->test_value)); - switch(trigger->test_type) { - case XSyncPositiveTransition: - if (XSyncValueGreaterThan(alarm->trigger.test_value, trigger->test_value)) - alarm->trigger.test_value = trigger->test_value; - break; - case XSyncNegativeTransition: - if (XSyncValueLessThan(alarm->trigger.test_value, trigger->test_value)) { - ErrorF("+++++++++++++= updating\n"); - alarm->trigger.test_value = trigger->test_value; - } - break; - default: - BUG_WARN(trigger->test_type); - break; - } -} - -static int -SyncSetSlaveAlarm(SyncTrigger *pTrigger) -{ - SyncCounter *pCounter; - SyncAlarm *slave; - int type = pTrigger->test_type; - - if (SYNC_COUNTER != pTrigger->pSync->type) - return Success; - - pCounter = (SyncCounter *) pTrigger->pSync; - if (!IsSystemCounter(pCounter)) - return Success; - - slave = pCounter->slave_alarms[type]; - if (!slave) { - slave = CreateSlavedAlarmFromTrigger(pTrigger); - if (!AddResource(slave->alarm_id, RTAlarm, slave)) - return BadAlloc; - pCounter->slave_alarms[type] = slave; - SyncAddTriggerToSyncObject(&slave->trigger); - } else - UpdateSlaveAlarmFromTrigger(slave, pTrigger); - - return Success; -} - static int SyncInitTrigger(ClientPtr client, SyncTrigger * pTrigger, XID syncObject, RESTYPE resType, Mask changes) @@ -1018,7 +936,6 @@ SyncCreateCounter(ClientPtr client, XSyncCounter id, CARD64 initialvalue) pCounter->value = initialvalue; pCounter->pSysCounterInfo = NULL; - memset(pCounter->slave_alarms, 0, sizeof(pCounter->slave_alarms)); if (!AddResource(id, RTCounter, (pointer) pCounter)) return NULL; @@ -1229,8 +1146,6 @@ FreeCounter(void *env, XID id) free(pCounter->pSysCounterInfo); } free(pCounter); - - /* FIXME: free alarm? resource may handle that */ return Success; } diff --git a/miext/sync/misyncstr.h b/miext/sync/misyncstr.h index 408f02e10..e19256fee 100644 --- a/miext/sync/misyncstr.h +++ b/miext/sync/misyncstr.h @@ -49,12 +49,6 @@ typedef struct _SyncCounter { SyncObject sync; /* Common sync object data */ CARD64 value; /* counter value */ struct _SysCounterInfo *pSysCounterInfo; /* NULL if not a system counter */ - /* If there is a transition alarm on a counter, we need to set up - * a slave alarm for the inverse transition alarm. - * Yes, that's as bullshit as it sounds. See - * https://bugs.freedesktop.org/show_bug.cgi?id=59644 - */ - struct _SyncAlarm *slave_alarms[2]; /* pos/neg transition */ } SyncCounter; struct _SyncFence { |