The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
May 1, 2026
Post comments count
0
Post likes count
0
Developing a cross-process reader/writer lock with limited readers, part 4: Abandonment
Recovering from death of the owner.
Apr 30, 2026
Post comments count
3
Post likes count
2
Developing a cross-process reader/writer lock with limited readers, part 3: Fairness
Let the exclusive acquisition have a fair chance against shared acquisitions.
Apr 29, 2026
Post comments count
1
Post likes count
2
Developing a cross-process reader/writer lock with limited readers, part 2: Taking turns when being grabby
Please, not everybody, everything all at once.
Apr 28, 2026
Post comments count
10
Post likes count
2
Developing a cross-process reader/writer lock with limited readers, part 1: A semaphore
A pot of tokens.
Apr 27, 2026
Post comments count
8
Post likes count
2
Looking at consequences of passing too few register parameters to a C function on various architectures
It's bad news no matter how you slice it, but Itanium makes it even worse.
Apr 24, 2026
Post comments count
3
Post likes count
2
Defending against exceptions in a scope_exit RAII type
But maybe it's not worth it.
Apr 23, 2026
Post comments count
12
Post likes count
2
Another crash caused by uninstaller code injection into Explorer
Inadvertently destroying a staircase while standing on it.
Apr 22, 2026
Post comments count
2
Post likes count
3
Mapping the page tables into memory via the page tables
So-called "fractal page mapping".
Apr 21, 2026
Post comments count
32
Post likes count
3
Sure, xor’ing a register with itself is the idiom for zeroing it out, but why not sub?
Somehow xor became the most popular version.