transaction blog

transaction blog is the website and blog of Thomas Zimmermann. Topics are picotm, transactions, and low-level software development.
On the web: 

Thomas Zimmermann • Oct 6, 2017 • 7 min read

When realloc() Doesn't Allocate

I recently wrote about correct error handling for malloc(). Coincidently I came across an older defect report on the behavior of C’s realloc() function just a few days ago. In this blog post, we’re going to look at realloc()’s behavior if it’s out of memory or if the requested size is zero.  Read →

Thomas Zimmermann • Sep 27, 2017 • 11 min read

Benchmark Visualization with LaTeX and gnuplot

Visualizing benchmark results is an important step in performance testing. In this blog post, we’re going to use LaTeX, gnuplot and Perl to convert raw performance data into a nice-looking PDF document.  Read →

Thomas Zimmermann • Sep 8, 2017 • 6 min read

malloc()'s Tricky Error Reporting

Most error checks for malloc() are incorrect. In this blog post, we’re going to look at the details of malloc()’s error reporting semantics and how to test if a call to malloc() succeeded.  Read →

Thomas Zimmermann • Sep 1, 2017 • 10 min read

The Internals of Unix Pipes and FIFOs

There is a series of blog posts examining the details of files and file descriptors, etc on Linux and Unix. This installment continues with the details of Unix FIFOs, how they work internally, and how they are used for communicating between processes.  Read →

Thomas Zimmermann • Aug 25, 2017 • 16 min read

The Strange strerror_r() of Dr POSIX and Mr GNU

There are several variants of the C function strerror_r() that differ in their return value and error handling. This blog post describes how to support all of them in a transactional interface, while still being compatible with either internal implementation. As such, strerror_r() serves as a case study for transactional interfaces with multiple or variable semantics.  Read →