Hey All,
I continue to work on my custom build comand (a WindowCommand). Unfortunately, I’m finding that when I run my external process via subprocess.call(), the ST3 app stops updating the window–it’s pretty much completely nonresponive until the external app finishes. That seems to be true of all ST3 instances–that is, if I have 3 projects open w/3 different ST3 windows, building one of them zombifies all 3 windows, which is a major bummer.
So I guess this means I need to run my external process in a newly-spawned thread–is that right? The behavior I’m looking for is:
- user edits script
-
user builds–my WindowCommand runs & shells out to the external program
-
all instances of ST3 stay responsive while external program runs
-
external program ends–control returns to my WindowCommand, which trolls the external-process-created log file for errors/warnings, pops dialogs & opens various output files for inspection.
Unfortunately I’m a python noob (and have only unsuccessful attempts at multi-threading in other langs). So I don’t want to go down this road if it can’t work b/c of some quirk of the ST3 runtime environment, or won’t give me the behavior I need. Can any kind soul out there tell me:
-
am I right that executing my external program on a python thread will give me the behavior I’m after?
-
can said threading work in the ST3 environment?
-
in figuring out how to do threading, am I okay just reading the raw python docs (e.g., docs.python.org/3/library/threading.html), or is there an ST3 API that I need to use?
Many thanks!
-Roy