I tried making Mutex shared once, and ended up down a rabbit hole of needing to make various Posix and Windows types shared, which in turn meant changing function signatures... I reverted the change and decided to revisit it later... Which never happened. I suppose it's time to revisit this and see how it goes.