Context: I\'ve built a multi-threaded program that uses some mutexes and a semaphore to handle synchronization (attached below). The purpose of the program is to crawl the w