This will stop working soon. Right now you can call destroy at any time, which is wrong, I'll protect it by checking if the loop is running or not, so the proper place to call destroy is right after run or run_forever har return.