top | item 39621464

No more Heisenbugs: lock-free fast logging library

2 points| gregthelaw | 2 years ago |github.com

1 comment

order

gregthelaw|2 years ago

Sometimes printf debugging is all you have available. But printf can be lousy for debugging race conditions because it's pretty slow and worse, libc's printf takes a lock and so introduces a synchronisation point. So I made a simple library that is both fast (~5ns on a half-decent machine) and lock-free.

It doesn't completely defeat the Heisenberg principle of course, but you can in practice add a decent amount of logging without affecting timing in a meaningful way.

Enjoy!