C++ Thread Library
Jan 2023Library to enable concurrent C++ programming

Creating a thread library that supports multi-processor programs is the second project in UM's EECS 482: Operating Systems course.
This is probably the largest software project I have ever worked on, just in terms of time invested. Creating a thread library involves a lot of careful interfacing with base-level linux functions as well as careful state management, and even the tiniest misstep can lead to errors that are only reproducible a tiny percent of the time due to nondeterministic behavior.
To account for this, my team of 3 created a detailed test suite, full of unit tests, integration tests, and stress tests that covered a large portion of our library's code. We also became very skilled with debugging using tools like GDB.
Working on this project also taught me a ton about commonly used C++ features, such as smart pointers, pIMPL, and RAII.
C/C++ · Operating Systems · Concurrency