comp.lang.ada
 help / color / mirror / Atom feed
From: Paul Van Gorp <paulvg@eelab.su.oz.au>
Subject: task pointer
Date: 1997/10/20
Date: 1997-10-20T00:00:00+00:00	[thread overview]
Message-ID: <344AA999.1AB2@eelab.su.oz.au> (raw)


I have this problem I want to try to over come, consider..

task type t1 is
	entry a;
	entry done;
end t1;

task type t2 is
	entry a(** access to type t1 **);
	entry b;
end t2;

task body t1 is
T: t2;

begin
	loop
		select
			accept a(**pointer to me**);
			T.b;
			...
		or
			accept done;
			...
		end select;
	end loop;
end t1;

task body t2 is
	C: **task t1 pointer**
begin
	loop
		select
			accept a(**task pointer**) do
				C := task pointer;
			end;
			...
			*task pointer*.done;
		or
			...
end t2;

How would I go about passing the task pointer ? I read in DejaNews where
someone put up a similar question about equivalent to C++'s *this
pointer, and their response suggested to use the type name as the this
pointer.

I tried this and got a gnat bug message when I tried to use the
Unchecked_Access' command!

Does anyone have a workaround ?

Thanks, Paul




             reply	other threads:[~1997-10-20  0:00 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-10-20  0:00 Paul Van Gorp [this message]
1997-10-25  0:00 ` task pointer Balmacara9
1997-11-01  0:00 ` Matthew Heaney
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox