Thanks a lot Kent. The exit call would be made from the same thread whose fate is to terminate.
Bernard On 1/31/06, Kent Johnson <[EMAIL PROTECTED]> wrote: > Bernard Lebel wrote: > > A quick question. > > > > I have started a child thread using the threading.Thread class. Is > > there any way to cleanly exit the child thread? > > > > What I mean by "cleanly" is for example if you use the > > thread.start_new() function to create a child thread, the function > > running in the child thread can call thread.exit() to terminate the > > thread. > > > > I could not find anything comparable in the Thread object's documentation. > > Both thread.start_new() and threading.Thread wrap a callable object in a > new thread. For start_new(), the callable is a parameter passed to the > function. For threading.Thread, the callable can be passed as an > initialization parameter or by overriding Thread.run(). > > In any case, the thread runs until the wrapped method terminates, either > by a normal function return or by raising an uncaught exception. The > usual way to exit a thread is for the wrapped callable to return (just a > normal function return). > > thread.exit() just raises SystemExit which terminates the callable with > an uncaught exception. You could probably do the same in a Thread by > raising SystemExit explicitly or calling sys.exit() (which raises > SystemExit for you). But just returning normally from the callable is > the usual way to exit a thread from within the thread. > > If you want to stop a thread from another thread it is harder. The > cleanest way to do it is to set a flag that the running thread will > check. There are several recipes in the online cookbook that show how to > do this. > > Kent > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor