Spun out all of the code internal to the thread from execute() into execute_thread().
execute() now calls execute_thread() as a thread, and then stores the thread info.
Authored by: bugman 2010-01-28
Parent: [r10515]
Child: [r10517]