Software transactional memory

Software transactional memory (STM) is a scheme for concurrent programming with multiple threads that uses transactions similar to those used in databases. Today I’ll discuss what STM is, how it works, some implementations, and why you should care. It’s well-known that if two or more threads blindly try to access the same data at the…

7

Non-nullable types

If you write programs in C, C++, Java, or C#, you’ve gotten used to having the null value around. The null value is a special reserved reference (or pointer) value indicating that a reference does not refer to any object. It’s useful for constructing a variety of data structures, but it’s also a notoriously common…

5

Secret sharing

One of the most difficult problems in cryptographic key management is keeping a secret key safe from both compromise and loss. If you don’t make enough backups, the key might be destroyed in a hardware failure or natural disaster. But if any backup is compromised, the key is compromised. Rather than invent new tools, one…

2