<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def finish(self, exitcode):
 """Cleans up. Anything pushed after finish will be dropped. Args: exitcode: The exitcode of the watched process. """

        self._queue.put(self.Finish(exitcode))
        self._thread.join()