Publicación atómica de archivos en Windows
El guardado de documentos headless prepara y vuelca un archivo de staging exclusivo en el directorio de destino antes de publicar sus bytes completos mediante reemplazo atómico
En Windows, los fallos transitorios ERROR_ACCESS_DENIED, ERROR_SHARING_VIOLATION y ERROR_LOCK_VIOLATION permiten como máximo ocho intentos de MoveFileEx con MOVEFILE_REPLACE_EXISTING y MOVEFILE_WRITE_THROUGH
Las esperas entre intentos son de 1, 2, 4, 8, 16, 16 y 16 milisegundos, sumando como máximo 63 milisegundos de esperas solicitadas; la planificación del sistema operativo y la duración de las syscalls determinan el tiempo transcurrido real
La cancelación se observa antes de cada intento y antes y después de cada espera; un reemplazo atómico exitoso completado es la frontera de publicación
Los bloqueos permanentes o restricciones de acceso preservan el destino original e informan el último error de Windows capturado; otros errores del sistema operativo fallan inmediatamente
Los guardados de documentos fallidos limpian sus archivos de staging propios; la publicación no borra un destino existente ni hace fallback a una copia parcial
La misma ruta privada publica guardados ordinarios, PDFs firmados y timestamps de documento independientes; Linux sigue usando su ruta de fsync y rename
Aceptación real
Las pruebas retienen handles de Windows reales que niegan el borrado, liberan un bloqueo transitorio en otro hilo, conservan bloqueos permanentes, cancelan durante el reintento e intentan un reemplazo de solo lectura
Cada objetivo de Windows también realiza 500 reemplazos atómicos completos y 50 guardados reales de documentos con recarga nativa, preservando los bytes de la fuente y comprobando la limpieza de los archivos de staging
Una sonda separada de solo WinAPI reproduce el fallo original intermitente de acceso denegado sin HotPDF ni Cairo; esto identifica la frontera de publicación sin atribuir la causa a un proceso no observado