produce+start+finish share a mutex or we end up with weird threading bugs