Atomowa publikacja plików w Windows
Zapis dokumentu headless przygotowuje i flushuje wyłączny plik staging w katalogu docelowym przed publikacją jego kompletnych bajtów przez atomową podmianę
Na Windows przejściowe niepowodzenia ERROR_ACCESS_DENIED, ERROR_SHARING_VIOLATION i ERROR_LOCK_VIOLATION dopuszczają co najwyżej osiem prób MoveFileEx z MOVEFILE_REPLACE_EXISTING i MOVEFILE_WRITE_THROUGH
Oczekiwania między próbami wynoszą 1, 2, 4, 8, 16, 16 i 16 milisekund, łącznie co najwyżej 63 milisekundy żądanych oczekiwań; szeregowanie systemu operacyjnego i czas syscall określają rzeczywisty upływ czasu
Anulowanie jest obserwowane przed każdą próbą i przed oraz po każdym oczekiwaniu; ukończona udana atomowa podmiana jest granicą publikacji
Trwałe blokady albo ograniczenia dostępu zachowują oryginalny cel i raportują ostatnio przechwycony błąd Windows; inne błędy systemu operacyjnego zawodzą natychmiast
Nieudane zapisy dokumentu sprzątają swoje posiadane pliki staging; publikacja nie usuwa istniejącego celu ani nie schodzi do częściowej kopii
Ta sama prywatna ścieżka publikuje zwykłe zapisy, podpisane PDF-y i samodzielne znaczniki czasu dokumentu; Linux nadal używa swojej ścieżki fsync i rename
Rzeczywista akceptacja
Testy utrzymują prawdziwe uchwyty plików Windows odmawiające usunięcia, zwalniają przejściową blokadę na innym wątku, utrzymują trwałe blokady, anulują podczas ponawiania i próbują podmiany tylko do odczytu
Każdy cel Windows wykonuje też 500 kompletnych atomowych podmian i 50 rzeczywistych zapisów dokumentu z natywnym ponownym wczytaniem, zachowując bajty źródła i sprawdzając sprzątanie plików staging
Osobna sonda tylko WinAPI odtwarza oryginalną przerywaną awarię odmowy dostępu bez HotPDF ani Cairo; identyfikuje to granicę publikacji bez przypisywania przyczyny nieobserwowanemu procesowi