async asynchronous programming Code message passing

A brief meditation on two-party message exchange

When two parties communicate, what are the possible patterns of message exchange? Here’s what I’ve come up with so far: (Updated June 22, 2013 with causality arrows, failure modes, sequences and reordering, streams, non-deterministic communication.) Send Also known as: procedure call, one-way, unidirectional, post, fire and forget, In-Only, Out-Only, request (R), trigger, event, notification, command, read more »

async asynchronous programming audio-programming Code lock-free message passing real-time

Programming with lightweight asynchronous messages: some basic patterns

This post introduces some basic asynchronous message passing patterns that I’ve found useful while implementing real-time audio software. The patterns apply to in-process shared memory message passing. For the most part this post is intentionally abstract. I won’t talk too much about concrete implementations. I do assume that the implementation language is something like C/C++ and that the message queues are implemented read more »