home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!gatech!udel!darwin.sura.net!Sirius.dfn.de!coli-gate.coli.uni-sb.de!uhf!kbsaar!kbsaar!fjrei
- From: fjrei@kbsaar.saar.sub.org (Franz-Josef Reichert)
- Newsgroups: de.comp.sys.amiga.misc
- Subject: Re: Message mitten aus Port-Queue Reply'en?
- Message-ID: <kxlqr*8I3@kbsaar.saar.sub.org>
- Date: Tue, 28 Jul 1992 18:52:04 GMT
- Reply-To: fjrei@kbsaar.saar.de (Franz-Josef Reichert)
- References: <wjokr*z10@oberon.nbg.sub.org> <1992Jul12.153134.24575@rz.uni-karlsruhe.de>
- <npglr*fg0@forge.erh.sub.org> <1992Jul26.165359.22777@mpifr-bonn.mpg.de> <xqZpr*Rg0@forge.erh.sub.org>
- Organization: Private Amiga Site
- X-Newsreader: Arn V1.00 beta rel2
- Lines: 44
-
- In article <xqZpr*Rg0@forge.erh.sub.org>, Henning Schmiedehausen writes:
-
- > In article <1992Jul26.165359.22777@mpifr-bonn.mpg.de>, Michael van Elst writes:
- >
- > > In <npglr*fg0@forge.erh.sub.org> barnard@forge.erh.sub.org (Henning Schmiedehausen) writes:
- > > >*WO* finde ich denn in den RKM's, dass es erlaubt ist, in den internen
- > > >Intuition-Queues rumzupfuschen? Und wie zukunftssicher ist das?
- > >
- > > Im Beispiel-Source zu CloseWindowSafely.. BTW, der Messageport gehoert
- > > dem deinem Programm (und wurde nur von intuition.library allokiert).
- >
- > Ja, ueber das Thema haben wir ja schon diskutiert. Das ist aber das einzige
- > belegte C= Beispiel, und auch nur fuer das Schliessen eines Fensters. Daraus
- > das Recht abzuleiten, die Warteschlangen frei zu manipulieren, ist sicher
- > gewagt.
-
- CloseWindowSafely() bzw. StripIntuiMessages() pfuscht
- ja auch nicht herum. Es tut nichts weiter, als die Messages
- der Reihe nach vom Port zu pfluecken und zu beantworten. Wie
- der uebliche WaitPort()/GetMsg()/ReplyMsg()-Loop, nur eben
- *ohne* Wait() und ohne die Messages von _anderen_ Windows
- zu beeinflussen. Was hier als bedenklich eingestuft wurde,
- war die Beantwortung von Messages eines Windows in einer
- anderen Reihenfolge, als sie von Intuition fuer dieses Window
- geschickt wurden.
-
- > Eine Frage haette ich noch: Ist das Beispiel eigentlich wirklich 'safe'?
- > IMHO kann ja ReplyMsg() das Forbid() brechen, weil dabei (mit MP_SIGTASK) ein
- > Reschedule stattfinden kann. Dann koennte ja theoretisch *IM* Forbid-Zustand
- > eine neue Message ankommen..... =:|
-
- Reschedule() tut nichts, wenn ein forbidden state
- vorliegt. Also auch kein Task-Switching veranlassen. Auch wenn
- der signalisierte Task hoeher priorisiert sein sollte, bekommt
- er seine naechste Zeitscheibe nicht vor Aufhebung des forbidden
- state durch den antwortenden Task.
-
- > Henning
-
- --
- Best regards,
- Franz-Josef Reichert GERMANY - VOICE: +49 6805 7417
- Kuchlingerstrasse 13 UUCP: fjrei@kbsaar.{saar|adsp}.sub.org
- 6601 Kleinblittersdorf fjrei@kbsaar.saar.de
-