I have a trait called Stoppable that makes it possible to create struct instances that have their own thread and that stop this thread when they are dropped.
Stoppable