use mutex instead of semaphore in RocketPort driver