dplatt@coherent.uucp (Dave Platt) (01/15/88)
I've encountered a marvelous Heisenbug (a bug whose behavior changes when you look for it) involving TOPS Spool and MultiFinder... it's an interesting interaction between these two products that Mac users should be aware of, lest they become as frustrated as I did. Yesterday, I installed MultiFinder on one of the Mac SE systems here at work (we have 11 of them on a PhoneNet, with a single LaserWriter Plus and a Kinetics bridge to our Sun Ethernet). I did not run the LaserWriter 5.0 installation script, because I had heard [correctly] that TOPS Spool is not compatible with the 5.0 driver/prep files. After rebooting, I found that TOPS Spool worked fine when the system was booted in Finder mode, but behaved erratically when the system was booted in MultiFinder mode. The primary symptom I saw was that TOPS Spool would spool the file to disk, but would not print it. The status display would indicated "Waiting; source: AppleTalk", and the printer's yellow status light would double-blink (indicating that the printer was waiting for data to be sent over AppleTalk). Sometimes files would print OK; sometimes the spooler would send none of the file; sometimes the spooler would send a varying percentage of the file (up to 100%) and then hang without terminating the PAP connection, causing the printer to time out after several minutes. I tried spooling one file several times, and the copies seemed to exhibit different behavior. I tried deinstalling and reinstalling TOPS Spool, reinstalling virgin LaserWriter and Laser Prep files from the System 4.1 tools disk, reinitializing the printer, isolating the printer and Mac from the rest of the PhoneNet, and quite a few other things. Behavior was still erratic. Finally, I noticed one critical clue: if I had turned "Print while I work" off, and then opened the TOPS Spool d/a and turned it back on, the spooler would not begin transmitting the file until I closed the desk accessory. Printing would then begin, and would continue to work properly until I opened the desk accessory again... at which point the current print job would hang! So... hmmm... using the TOPS Spool desk accessory under MultiFinder causes the background printing task to stop working, but using exactly the same desk accessory, System, drivers, etc. works just fine if the system is booted under the Finder. What's the difference? Well, under MultiFinder, desk accessories are normally opened by a mini-application called DA Handler, so that they won't go away if you "Quit" from your current application. I tried opening TOPS Spool while holding down the Option key, which forces the desk accessory to run in the current application's context... and, lo and behold, background printing kept working! Apparently, the TOPS Spool desk accessory interferes with the background-printing task if it's run under DA Handler, but not if it's run under the current application (Finder, in my case). Summary: if you're running TOPS Spool under MultiFinder, and want to use the TOPS Spool desk accessory, you should hold down the Option key when opening the d/a; if you don't, you'll temporarily hang the printing task. I've reported this problem to TOPS tech support... it's apparently the first time they'd heard of it. -- Dave Platt UUCP: ...!{ames,sun,uunet}!coherent!dplatt Internet: coherent!dplatt@ames.arpa, ...@sun.com, ...@uunet.uu.net