0.bowing.c One bowing event single threaded 1.bowing.c One bowing event multi-threaded Requires a "wrapper" function. 2.bowing.c: Throw in another bowing event. And sleep. 3.bowing.cpp: One big lock 4.bowing.cpp: Separate lock for each object. Managed within the bow/bowback functions. Deadlocks! 5.bowing.c: Separate lock for each object managed within the bowing function. Note that if trying pthread_yield, use: -D _GNU_SOURCE 6.bowing.c: Order locks