Multithreaded strace analyser
I rebuilt a sequential syscall-log parser as a concurrent pipeline, using a producer thread streaming trace lines into a bounded, condition-variable-backed work queue. Each worker was given a thread-local statistics map, merged once at join rather than contended on throughout.
The interesting part was not making it concurrent but finding where concurrency stops paying. Benchmarked against one thread, two, four, and eight on the same trace, it never started: each added thread cost time rather than saved it. Parsing a single line is short enough that the queue synchronisation around it, and the merge at join, dominate the work being handed out.
Concurrent disk device driver
Application threads synchronised against a disk device through two bounded producer-consumer queues, drained by dedicated read and write worker threads with voucher-based asynchronous completion, so callers are not blocked waiting on the device.
Note
This was assessed coursework, so no source code is published. The design and the results are discussed here instead.

