Obieg żądania (X11)
Żądanie, które musi zaczekać na odpowiedź serwera, zanim program pójdzie dalej: najdroższa operacja protokołu X i powód, dla którego toolkit potrafił startować całymi sekundami przez wolne łącze.
Większość żądań X — narysuj linię, przesuń okno — nie ma odpowiedzi; Xlib kolejkuje je w buforze i wysyła partiami. Ale XInternAtom, XGetWindowAttributes, XQueryTree, XGetGeometry i XSync wymagają odpowiedzi, a Xlib blokuje się, dopóki ta nie nadejdzie. Lokalnie przez gniazdo uniksowe to ułamek milisekundy; w sieci z opóźnieniem 50 ms każde takie żądanie oznacza jedną dwudziestą sekundy postoju. Aplikacja Motif mogła przy starcie zarejestrować setki atomów i zapytać o geometrię każdego widżetu, co dawało znajome oczekiwanie na terminalach X i przez modemy.
Środków zaradczych było wiele. Xlib dostał XInternAtoms, by pobierać wiele atomów w jednej odpowiedzi. LBX, a później NX ustawiały obok serwera pośrednika, który odpowiadał z pamięci podręcznej. XCB powstało w 2001 roku właśnie w tym celu: każde żądanie od razu zwraca cookie, a odpowiedź odbiera się dopiero, gdy jest potrzebna, więc w locie może być dziesięć pytań naraz. Toolkity nauczyły się buforować atrybuty okien zamiast o nie pytać. Szczególnym przypadkiem jest obsługa błędów: ponieważ błędy zgłaszane są asynchronicznie, program nie wie, że wywołanie się nie powiodło, aż do następnego obiegu, przez co procedurę obsługi błędów X tak trudno ogarnąć rozumem.