comp.lang.ada
 help / color / mirror / Atom feed
From: Poul-Erik Andreasen <poulerik@pea.dk>
Subject: Re: Newbie: Task parametering
Date: Mon, 17 Oct 2005 17:57:48 +0200
Date: 2005-10-17T17:57:48+02:00	[thread overview]
Message-ID: <4353c9fc$0$163$edfadb0f@dread11.news.tele.dk> (raw)
In-Reply-To: <1129510387.675070.134750@g14g2000cwa.googlegroups.com>

jimmaureenrogers@worldnet.att.net wrote:
> Andrew Price wrote:
> 
>>Hello all,
>>
>>I need to initialise some tasks with a few parameters when I instantiate
>>them. After looking at
>>http://www.adaic.com/docs/95style/html/sec_6/6-1-3.html it seems the
>>best way to do this is using an access type discriminant to pass a
>>record to the tasks.
>>
>>With that in mind, I created this record type;
>>
>>type Task_Data is
>>       record
>>       Name : aliased String(1..8);
>>       Period : aliased Duration;
>>       Repetitions : aliased Integer;
>>    end record;
>>
>>
>>and then in the main part of my program I use it like this;
>>
>>    type Task_Handle is access A_Task;  -- used to point to the task
>>    Another_Task : Task_Handle;
>>    type Data_Handle is access Task_Data; -- used to point to its data
>>    Data_For_Task : Data_Handle;
>>
>>begin  -- The main prog will now spawn three of the above tasks
>>
>>    -- Parameterise the first task and then start it.
>>    Data_For_Task := new Task_Data;
>>    Data_For_Task.Name := "Task A  ";
>>    Data_For_Task.Period := 0.5;
>>    Data_For_Task.Repetitions := 5;
>>    Another_Task := new A_Task(Data_For_Task);
>>
>>So while this approach works, I can't help but feel that I'm going about
>>this in a 'long winded' way (especially coming from a mostly C background).
>>
>>Is there are neater way of putting the data into the Task_Data records?
>>Or is there an better approach to the whole task parameterisation I
>>should consider?
>>
>>Now is probably a good time to add the disclaimer that this is part of a
>>lab work exercise for a course I'm currently undertaking at university.
> 
> 
> There is a little roblem with your approach.
> 
> It does not actually initialize the task. The task begins running
> before the values are set. You are likely to encounter a race
> condition with your approach.


Where do you get that idea. Before any allocation the access_varible 
only contain null;


PEA



  parent reply	other threads:[~2005-10-17 15:57 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-17  0:23 Newbie: Task parametering Andrew Price
2005-10-17  0:53 ` jimmaureenrogers
2005-10-17  2:37   ` tmoran
2005-10-17  4:10     ` tmoran
2005-10-17  4:58   ` Andrew Price
2005-10-17 10:02     ` Jacob Sparre Andersen
2005-10-17 15:57   ` Poul-Erik Andreasen [this message]
2005-10-17 22:51   ` Stephen Leake
replies disabled

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