Léxico TI › Programación › Marcas de tiempo (X11)

Marcas de tiempo (X11)

Programación Svenska → Actualizado: 2026-10-09

El reloj propio del servidor X: 32 bits de milisegundos que viajan en cada pulsación de tecla y cada clic, y lo que decide quién ganó cuando dos programas quieren el mismo recurso.

El servidor cuenta milisegundos desde un origen arbitrario, en la práctica su propio arranque, y el contador da la vuelta al cabo de unos 49 días. Cada evento de tecla, botón y propiedad lleva el valor, y no es adorno. Quien quiera poseer una selección, tomar un grab o mover el foco envía una marca de tiempo, y el servidor rechaza la petición si es más antigua que el último cambio. Así se resuelven las carreras entre clientes sin que el servidor tenga que saber quién tiene razón: gana el que actuó sobre el evento de usuario más reciente.

La constante CurrentTime, cero, significa "ahora" y resulta tentadora cuando no se tiene ningún evento a mano. ICCCM la prohíbe para las selecciones, porque "ahora" nunca pierde una carrera y deja la regla sin sentido; un programa sin evento fresco debe escribir cero bytes en una propiedad y leer la hora del PropertyNotify que vuelve. Las mismas marcas sostienen las capas posteriores: _NET_WM_USER_TIME y startup notification registran cuándo hizo algo el usuario por última vez, que es toda la base de la prevención del robo de foco.

← Volver al léxico