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,629fb94ebc84f06a,start X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-06-20 05:32:03 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newspeer.clara.net!news.clara.net!btnet-peer!btnet!lnewspeer01.lnd.ops.eu.uu.net!emea.uu.net!news!not-for-mail From: Nige Newsgroups: comp.lang.ada Subject: Difficult to describe problem Date: Thu, 20 Jun 2002 13:16:58 +0100 Organization: Thales Message-ID: <3D11C7BA.8040504@uk.thalesgroup.com> NNTP-Posting-Host: ntwc0032.int.rdel.co.uk Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: rdel.co.uk 1024575375 28210 172.21.187.19 (20 Jun 2002 12:16:15 GMT) X-Complaints-To: postmaster@uk.thalesgroup.com NNTP-Posting-Date: 20 Jun 2002 12:16:15 GMT User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.0rc3) Gecko/20020523 X-Accept-Language: en-us, en Xref: archiver1.google.com comp.lang.ada:26472 Date: 2002-06-20T12:16:15+00:00 List-Id: Hi - Sorry about the ambiguous title of this post, but it's hard to sum up the problem. What I have is a simple Ada interface to the Xlib function which contains functions for creating windows, and drawing in them, etc. The package is a generic, with a procedure passed as a parameter to handle events generated by X. Inside the package is a task which examines the X event list and calls the procedure as required. I also have another generic package which provides a menu by instantiating it with an enumeration type and another procedure. This menu package uses the above window package to create a window and fill it with the elements of the enumeration type. When one of the items is clicked on, the procedure is called. The problem is that if I instantiate the windows package and the menu package within the same executable, I end up with two tasks, each processing the X events. This works OK, most of the time, but sometimes one of the task fails during elaboration. I have used a protected type declared externally to both packages to single thread the whole thing, but this still doesn't prevent the problem. Ideally, I'd like to integrate the menu package into the window package so that they both use the same event loop (task) which I think will cure the problem. The final problem I have is how to integrate it. If the menu package remains generic, it can't be called by the task. If I make it non generic, I can't specify an enumeration for the menu when it is created. What I'd really like to do is to make the menu package a non generic and somehow pass an enumeration type to it. If not I'll have to pass a list of pointers to strings or something. Sorry for the long post - any ideas welcommed. Nige.