The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

My electric toothbrush was acting up, so I tried to reboot it
Jan 28, 2025
1
0

My electric toothbrush was acting up, so I tried to reboot it

Raymond Chen
Raymond Chen

It didn't help.

A pattern for obtaining a single value while holding a lock
Jan 27, 2025
4
1

A pattern for obtaining a single value while holding a lock

Raymond Chen
Raymond Chen

The immediately-invoked lambda that returns a value.

A brief and incomplete comparison of memory corruption detection tools
Jan 24, 2025
0
4

A brief and incomplete comparison of memory corruption detection tools

Raymond Chen
Raymond Chen

A short overview, definitely incomplete.

Memory corruption from outside the process looks like space aliens
Jan 23, 2025
0
2

Memory corruption from outside the process looks like space aliens

Raymond Chen
Raymond Chen

The write isn't visible to your process, just the effect of the write.

Be mindful of temporal terms in documents: What is the reference point in time?
Jan 22, 2025
15
4

Be mindful of temporal terms in documents: What is the reference point in time?

Raymond Chen
Raymond Chen

What is your implied point in time for the reference?

Why is there a bulge on my bicycle tire when I inflate it?
Jan 21, 2025
4
0

Why is there a bulge on my bicycle tire when I inflate it?

Raymond Chen
Raymond Chen

Get the order of operations right.

Why doesn’t the Windows blue screen of death prominently identify the company that created the driver that crashed?
Jan 21, 2025
5
3

Why doesn’t the Windows blue screen of death prominently identify the company that created the driver that crashed?

Raymond Chen
Raymond Chen

Because the driver that crashed may not be the one at fault.

Reminder: When a C++ object fails to construct, the destructor does not run
Jan 20, 2025
1
3

Reminder: When a C++ object fails to construct, the destructor does not run

Raymond Chen
Raymond Chen

If you need to run after a failed construction, you have to put it in a base class or member variable.

The case of the crash when trying to erase an element from a <CODE>std::set</CODE>
Jan 17, 2025
6
1

The case of the crash when trying to erase an element from a std::set

Raymond Chen
Raymond Chen

Another kind of fiasco.