From: Martin Krischik <krischik@users.sourceforge.net>
Subject: Re: "multithread"
Date: Sun, 03 Apr 2005 10:40:10 +0200
Date: 2005-04-03T10:40:10+02:00 [thread overview]
Message-ID: <4898203.3vGOzBuHlK@linux1.krischik.com> (raw)
In-Reply-To: pan.2005.04.02.22.37.39.88996@nospam.a2lf.org
Jean-Baptiste CAMPESATO wrote:
> Hello,
> I want to create a function wich can called "several times at the same
> time", MultiThread.
Apart from the tips you allready got: If you want Go to be called more then
once "at the same time" you will need a "task type" instead of a simple
task.
> I found task and i tested :
> In ADS :
> -- Tache pour le traitement du client
> task Traitement is
> entry Go(Client:Socket_Type);
> end Traitement;
task type Traitement is
entry Go(Client:Socket_Type);
end Traitement;
type Traitement_Access is access Traitement ;
> -----------------------------------------------
> In ADB :
> task body Traitement is
> begin
> accept Go(Client:Socket_Type) do
> put_line("Tache.");
> Close_Socket(Client);
> end Go;
> end Traitement;
> ------------------------------------------------
> In the loop wich call Traitement:
> loop
> -- On accepte le client
> Accept_Socket (Server, Client, Address);
Inside the loop you would need to create a new task from the task type:
declare
New_Traitement : Traitement_Access := new Traitement
begin
-- Et on crᅵᅵ un thread pour lui
New_Traitement.Go(Client);
end;
> end loop;
And now it get's tricky - because this is the one point where garbage
collection is really missing. Garbage collection is only an optional
feature and standart Ada compilers haven't got it.
But you never know when the task is finished so you never know when to free
the memory allocated for the task.
Martin
--
mailto://krischik@users.sourceforge.net
Ada programming at: http://ada.krischik.com
next prev parent reply other threads:[~2005-04-03 8:40 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-02 22:37 "multithread" Jean-Baptiste CAMPESATO
2005-04-03 1:34 ` "multithread" Jim Rogers
2005-04-03 7:30 ` "multithread" Jean-Baptiste CAMPESATO
2005-04-03 7:12 ` "multithread" Martin Dowie
2005-04-03 8:40 ` Martin Krischik [this message]
2005-04-03 9:07 ` "multithread" Jean-Baptiste CAMPESATO
2005-04-03 11:13 ` "multithread" Martin Krischik
2005-04-03 12:14 ` "multithread" Jean-Baptiste CAMPESATO
2005-04-03 13:42 ` "multithread" Adrian Knoth
2005-04-03 13:24 ` "multithread" Jean-Baptiste CAMPESATO
2005-04-03 22:27 ` "multithread" Jeffrey Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox