OK, so I've got different prims that communicate with each other in a kind of master/slaves setup; the master controls the slaves and also serves as a UI; the slaves do the work they're told and report back when it's done. Communication is through llRegionSay(), since they might physically be a considerable distance apart. All's working reasonably well so far, but there's a lot more functionality to be added.
Now, I'd considered splitting the two scripts (master and slave) by function, scripts within each prim communicating with one another through link messages. This would simplify things a great deal in a lot of ways.
For example, they use a timed PING/PONG type of communication between master and slave just for each to ensure the other's there when other comms are quiet, and to deal properly with cases where one or other dies, crashes, is taken into inventory, or whatever else might happen. Also, the core functionality calls for state changes depending on what modes they're in. Currently, each state does its own job as well as handling PING/PONG communications. If a separate script could be triggered to do the PINGing and PONGing, which only communicates back if something goes wrong, that would certainly make the code smaller, faster and easier to maintain.
There are a couple of other tasks that I believe could be greatly simplified if they had their own scripts running separately.
Now, so far so good, until I came across a page on the LSL Wiki: http://www.lslwiki.net/lslwiki/wakka.php?wakka=multithreading, which is entitled "multithreading" and discusses this technique. In particular, it says:
"Warning: The practice of multithreading to eliminate script delays is a mildly dangerous one at best, and holds the potential to bring a server to its knees, or outright crash it at its worst. Please, for the love of the hippos, try to refrain from multithreading unless it is absolutely necessary for a script to have no script delay. A multithreaded script can cause problems for dozens or even hundreds of users if done needlessly. Multithreading can cause unnecessary strain on sims or other servers, and should be avoided when possible."
Now, it seems to me that they're talking only about multithreading to avoid script delays (not the case here), but then takes the reasons against doing that and applies them to multithreading in general - the last two sentences in particular, taken in isolation, would seem to apply to my situation as well as to someone bombarding the system with emails or suchlike.
Am I right in assuming that the kind of thing I'm planning on doing is not going to cause server overload, or are they literally true when they say "multithreading ... should be avoided when possible"?
