Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!bionet!apple!oliveb!amiga!cbmvax!jesup From: jesup@cbmvax.UUCP (Randell Jesup) Newsgroups: comp.sys.amiga.tech Subject: Re: Help with Multitasking and Multiple Windows Keywords: To many windows cause my program to smoke Message-ID: <7541@cbmvax.UUCP> Date: 4 Aug 89 18:36:17 GMT References: <15645@watdragon.waterloo.edu> Reply-To: jesup@cbmvax.UUCP (Randell Jesup) Distribution: comp Organization: Commodore Technology, West Chester, PA Lines: 26 In article <15645@watdragon.waterloo.edu> ffishman@lion.waterloo.edu (Flynn D. Fishman) writes: >This program opens a screen and then spawns several tasks which in turn >open windows on the new screen. > >The major problem is that the more tasks (actually process) I have running >the better chance I have of guruing (completely, no system message or >anything just a grey screen or fire workds) > >If I put forbids or permits in key locations I can reduce this problem >(If I put a forbid at the start of each process the problem goes away). I am >currently hypothesing that some of the graphics routines I use have >some kind of contention. But this does not make sense to me since they >all use the rastport and therefore the Layers library which should lock >when necessary. The routines that I am using are: > RectFill, SetRast, SetAPen, Text, Move, Draw, WritePixel. Many of those don't involve layers, just the rastport. There is no locking of rastports. What you need to do is create multiple rastports refer- ing to the same bitmap/layers. I believe copying the entire rastport is kosher, provided you also make new tmpras's if you have one (i.e. don't try to share a tmpras.) Then a SetAPen will only affect one process, not both/all. -- Randell Jesup, Keeper of AmigaDos, Commodore Engineering. {uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com BIX: rjesup Common phrase heard at Amiga Devcon '89: "It's in there!"