From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,6d10b4841e4a643b X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-04-15 09:09:34 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!feed2.news.rcn.net!rcn!wn14eed!worldnet.att.net!135.173.83.55!bgtnsc05-news.ops.worldnet.att.net.POSTED!not-for-mail Message-ID: <3CBAFB35.40102@worldnet.att.net> From: Jim Rogers User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.4) Gecko/20011128 Netscape6/6.2.1 X-Accept-Language: en-us MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Are rendezvous dead? References: <3CB940F7.4EC50CFD@yahoo.com> <4519e058.0204150604.2e65daca@posting.google.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Date: Mon, 15 Apr 2002 16:09:33 GMT NNTP-Posting-Host: 12.86.35.207 X-Complaints-To: abuse@worldnet.att.net X-Trace: bgtnsc05-news.ops.worldnet.att.net 1018886973 12.86.35.207 (Mon, 15 Apr 2002 16:09:33 GMT) NNTP-Posting-Date: Mon, 15 Apr 2002 16:09:33 GMT Organization: AT&T Worldnet Xref: archiver1.google.com comp.lang.ada:22560 Date: 2002-04-15T16:09:33+00:00 List-Id: Ted Dennison wrote: > I personally find them complementary, not competative with each other. I agree. Each feature still has a valid place in Ada syntax and usage. > What you can now do in Ada 95 is use tasks *only* for those entities > that logically contain their own thread of control, without having to > create a lot of extra fluff tasks. > > In a multi-threaded algorithm you generally want to have each task > designated as either a client or a server. There are some exceptions, > but it is usually a very bad idea to make a task that tries to be > both. One example of a design needing tasks to be both clients and servers is a concurrent command and control system. When I was doing robotics work with Ada we found that much of our design was devoted to message translation and distribution. For instance, one control on the Operator Control Unit was a joystick. That joystick controlled speed and direction of the robotic vehicle. One joystick message was distributed among controls for throttle, brakes, steering, and transmission. Steering messages were customized for the vehicle type being controlled. Turning a tracked vehicle requires one track to be stopped (with a brake command) while the other continues running. This produces a moderate turning diameter. For tight turns one track is run in a forward direction while the other is run in a reverse direction, requiring both brake and transmission commands. Steering a wheeled vehicle simply involves turning the steering wheel. In the case of the tracked vehicle, the steering task must be a client to the operator control unit, receiveing a steering message. It must then translate that steering message into either a combination of braking, transmission, and throttle control commands, acting as a server for the braking, transmission, and throttle commands. Of course, we did use protected objects between our tasks. This allowed a brake task, for example, to receive its messages from many other tasks, and process them in a FIFO manner. Tasks not directly involved in message distribution commonly communicated using rendezvous. Jim Rogers