zglib
zglib

Reputation: 11

Python/Discord.py - How do I stop all running code but not stop the program?

I'm making a Discord bot with a lot of commands that take a while to finish (like loops) so I'd like to also have a command that stops any actively running code. I've tried sys.exit but I don't want to have to restart the program each time before it will take another input. Anyone know what I can do?

Upvotes: 1

Views: 390

Answers (1)

stomps
stomps

Reputation: 48

It will depend on the way your code is formatted, but you will probably want to use functions that utilize boolean or return statements:

def foo():
    if end_this:
        return
    # stuff

If you have some tracking boolean end_this that is set to True, the function foo() will not execute everything below. Alternatively, you could use a while-loop with a break in your code:

def foo():
    while True: # runs forever unless ended
        # stuff

        break

Now, foo() will continue indefinitely until the break statement is reached. An if-statement can enclose the break, setting some logic on when the break occurs. Again, this may require a main() function to handle the calls and ends of your previous functions, but it would allow following code/functions to execute.

Upvotes: 1

Related Questions