oops! tried to join() threads from inside when error condition triggers. don't do that...