There should be a check here:

```
if self._thread.is_alive():
    raise SomeSortOfException()
```

otherwise the thread will continue running forever, without the user knowing that something went wrong with it.