summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2013-10-16 16:46:53 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2013-10-16 16:46:53 +1000
commit9de6938b88f42cbd768842a55a284c35d3892a4a (patch)
tree11522ef18d15a50c8aac2037efb6d242d1ae7ec3
parentd2bbabd9d7561022af1ba23c8119213cade813c0 (diff)
Revert "sync: create slaved alarm so we don't miss any transitions"wip/xsync-transition-bug-59644
-rw-r--r--Xext/sync.c85
-rw-r--r--miext/sync/misyncstr.h6
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 {