Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!ames!ucbcad!ucbvax!ucdavis!egg-id!ui3!wsucshp!kinner From: kinner@wsucshp.UUCP (Bill Kinnersley ) Newsgroups: comp.sys.amiga Subject: Who is Intuition? What is she? Message-ID: <160007@wsucshp.UUCP> Date: Mon, 18-May-87 17:51:34 EDT Article-I.D.: wsucshp.160007 Posted: Mon May 18 17:51:34 1987 Date-Received: Sat, 23-May-87 11:24:20 EDT Organization: WSU Computer Science Lines: 55 (I'm running about two months late..this has been a busy semester) In article <2679@well.UUCP> ewhac@well.uucp (Leo 'Bols Ewhac' Schwab) writes: [in a discussion of messages and replies thereto] > For the sake of completeness, Intuition is a totally > different animal. Intuition is not an I/O driver, it's a sort > of application. You don't send requests (messages) to > Intuition, Intuition sends messages to YOU. That's why, when > you get an IntuiMessage, you should reply to it as soon as you > can.. It's a different animal, I'll grant you that, but it's not even "sort of" an application. The way I understand it, Intuition is a library. Nothing more. It is made to have the appearance of an independent task, but only because it is called at such frequent intervals by other system tasks. Mostly by the input.device, which calls the entry point Intuition() and supplies a stream of input events. Intuition() turns some of these into IntuiMessages. Messages and ports are designed to handle communications between two exec tasks. Intuition appears to act as a task when it sends you a message to your IDCMP UserPort and you have to send it a reply, but that's a fake--it's all done with mirrors. Take a look at the contents of an IntuiMessage. The Reply Port for the Message is the other IDCMP port in your Window, w->WindowPort. But the SigTask is NULL, and the Flag is IGNORE. There *is* no Intuition task listening on the other end, and your faithful replies to Intuition are just being enqueued. Presumably Intuition() has to scoot around and poll all these ports itself as part of its own housekeeping. In fact, Intuition implemented as a task would quickly run into problems. In the first place, someone would surely be tempted to RemTask() it. Secondly, since there is a limit of 16 signals available to each task, there can only be allocated 16 different Message Ports at once, hence Intuition (if it were a task) could manage only 16 windows. --- "Nesting is for the birds" --Bill Kinnersley USENET: ...!ucbvax!ucdavis!egg-id!ui3!wsucshp!kinner INTERNET: kinner%wsu@RELAY.CS.NET CSNET: kinner@wsu MAIL: CS Dept, Washington State Univ, Pullman WA 99164-1210 PHONE: (509)332-3340