added shared memory semaphores, seems accurate on my end