summaryrefslogtreecommitdiff
path: root/randr
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2016-04-01 22:44:26 -0400
committerAdam Jackson <ajax@redhat.com>2016-05-04 10:58:01 -0400
commit137ac094e7ab8c871f3b36e40ad826ac797f0e26 (patch)
tree176d84564ba28a563152634d5726ada7ce613969 /randr
parentac164e58870d70640381e68b776eb95578c7fbd3 (diff)
dix: Push UpdateCurrentTimeIf down out of the main loop
This was added in: commit 312910b4e34215aaa50fc0c6092684d5878dc32f Author: Chase Douglas <chase.douglas@canonical.com> Date: Wed Apr 18 11:15:40 2012 -0700 Update currentTime in dispatch loop Unfortunately this is equivalent to calling GetTimeInMillis() once per request. In the absolute best case (as on Linux) you're only hitting the vDSO; on other platforms that's a syscall. Either way it puts a pretty hard ceiling on request throughput. Instead, push the call down to the requests that need it; basically, grab processing and event generation. Cc: Chase Douglas <chase.douglas@canonical.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
Diffstat (limited to 'randr')
-rw-r--r--randr/randr.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/randr/randr.c b/randr/randr.c
index ad1dda227..3aabb1981 100644
--- a/randr/randr.c
+++ b/randr/randr.c
@@ -676,6 +676,7 @@ ProcRRDispatch(ClientPtr client)
REQUEST(xReq);
if (stuff->data >= RRNumberRequests || !ProcRandrVector[stuff->data])
return BadRequest;
+ UpdateCurrentTimeIf();
return (*ProcRandrVector[stuff->data]) (client);
}
@@ -685,5 +686,6 @@ SProcRRDispatch(ClientPtr client)
REQUEST(xReq);
if (stuff->data >= RRNumberRequests || !SProcRandrVector[stuff->data])
return BadRequest;
+ UpdateCurrentTimeIf();
return (*SProcRandrVector[stuff->data]) (client);
}