it adds complexity, but do you want to add a nice terminate method?  while (!done) ..   (and then implement a 'terminate' method that sets done = true and .notify() ?  )