From: "Hibou57 (Yannick Duchêne)" <yannick_duchene@yahoo.fr>
Subject: Re: Private or public task ?
Date: Fri, 5 Feb 2010 14:09:33 -0800 (PST)
Date: 2010-02-05T14:09:33-08:00 [thread overview]
Message-ID: <494a3592-421b-4a08-9505-f4c9b2cdce43@a32g2000yqm.googlegroups.com> (raw)
In-Reply-To: 1rvjt99u2jqa8.1okqcvf62hlc8$.dlg@40tude.net
On 5 fév, 22:40, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
wrote:
> This is illegal, because protected procedure shall not perform potentially
> blocking actions (like I/O.
As Jeffrey pointed out as well. I will check the RM about it (I have
to establish I've missed it).
> You do not need to worry about that. Unless you are using pointers, the
> task object's scope encloses any calls to its entries. Therefore it simply
> cannot terminate due to its finalization before any entry call.
**it simply cannot terminate due to its finalization before any entry
call**
That's clever to notice ! OK, I see. Now I understand Jeffrey's
doubts.
> If you want garbage collection because of pointers involved then just do
> it. Don't break the task interface, make a handle type pointing to the task
> object. When the last handle vanishes, deallocate the task. That is.
“ Deallocate the task ” ? If I want to deallocate, I have to request
it to completes, and for the latter, I need it to have a corresponding
request entry... which would need to be public (as private entry
accessible from implementation is not possible).
> Task component does not work in most real-life cases.
My words was wrong : I was not to talk about using task as record
components, I was to say task may be implementation details, just like
record components are.
> Yes, an entry call can be syntactically and semantically different than a
> call to a procedure.
Syntactically : can be wrapped in a procedure call.
Semantically : sure if protected objects are required to not invoke
blocking operations, this is semantically different.
> You can print from the rendezvous. That is not a problem. Some tight
> implementations would prefer buffering in the rendezvous in order to
> release the caller as soon as possible (minimizing the effect of priority
> inversion). I.e. Text is first copied into the task's buffer during the
> rendezvous and printed later outside the rendezvous before accepting the
> new one. Assuming that the callers run at a higher priority and do not
> print very often leaving the processor free most of the time, this would
> give better response times in the callers (at the cost of some overall
> performance hit).
I like this hint (have a taste of real-time design by the way).
next prev parent reply other threads:[~2010-02-05 22:09 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-05 20:54 Private or public task ? Hibou57 (Yannick Duchêne)
2010-02-05 20:56 ` Hibou57 (Yannick Duchêne)
2010-02-05 21:38 ` Jeffrey R. Carter
2010-02-05 21:53 ` Hibou57 (Yannick Duchêne)
2010-02-08 9:55 ` Alex R. Mosteo
2010-02-08 10:02 ` Jean-Pierre Rosen
2010-02-08 17:28 ` Maciej Sobczak
2010-02-09 8:43 ` Dmitry A. Kazakov
2010-02-09 12:07 ` Hibou57 (Yannick Duchêne)
2010-02-09 14:26 ` Jean-Pierre Rosen
2010-02-09 18:17 ` Hibou57 (Yannick Duchêne)
2010-02-10 8:17 ` Maciej Sobczak
2010-02-10 8:29 ` Hibou57 (Yannick Duchêne)
2010-02-10 8:40 ` Martin
2010-02-10 11:44 ` Jean-Pierre Rosen
2010-02-10 12:51 ` Martin
2010-02-10 16:17 ` Robert A Duff
2010-02-10 11:38 ` Jean-Pierre Rosen
2010-02-13 11:09 ` Dmitry A. Kazakov
2010-02-09 15:20 ` Robert A Duff
2010-02-09 18:26 ` Hibou57 (Yannick Duchêne)
2010-02-09 14:44 ` Alex R. Mosteo
2010-02-09 23:38 ` mkasun
2010-02-09 23:51 ` Robert A Duff
2010-02-10 0:01 ` Jeffrey R. Carter
2010-02-05 21:40 ` Dmitry A. Kazakov
2010-02-05 22:09 ` Hibou57 (Yannick Duchêne) [this message]
2010-02-05 22:57 ` sjw
2010-02-06 2:20 ` Hibou57 (Yannick Duchêne)
2010-02-06 2:23 ` Hibou57 (Yannick Duchêne)
2010-02-06 3:29 ` Jeffrey R. 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