the issue was i was being dumb with condition variables, however some additional debugging is required