From: "Hibou57 (Yannick Duchêne)" <yannick_duchene@yahoo.fr>
Subject: Re: Private or public task ?
Date: Tue, 9 Feb 2010 04:07:14 -0800 (PST)
Date: 2010-02-09T04:07:14-08:00 [thread overview]
Message-ID: <f7048897-bce0-4e1d-8f49-85fe274d7292@v25g2000yqk.googlegroups.com> (raw)
In-Reply-To: e714f043-9fed-4e2b-b3d2-180b0364f0cf@d27g2000yqn.googlegroups.com
On 8 fév, 18:28, Maciej Sobczak <see.my.homep...@gmail.com> wrote:
> As far as I understand, there is a careful wording around this subject
> so that formally speaking protected operations (except for entries)
> are not themselves "blocking". So, for example, you can call protected
> operations from other protected operations.
>
> The operations that are considered to be blocking in this context are
> delay statements, entry calls, select statements and... I/O
> operations. These cannot be called from protected operations.
>
> (I'm sure somebody will correct me if I'm off tracks)
Protected types was most the subject of another thread, but as you
talked about it here : I don't understand why you've protected
operation (I suppose you were talking about procedures, not entries)
are not themselves blocking. They grant exclusive read-write access
and ensure there is no race. So if another task is currently running
the procedure of a protected type, another task cannot enter this
procedure if it was to do so and a task switch occurs at the same
time.
Or is it guaranteed that no task switch can occurs when a task is
actually in a procedure of a protected type ? Is the task switch
delayed in such a circumstance ?
Let temporarily suppose so. But remains another wolf in the wood :
what if the application is running in a multiprocessors environment
and its thread are not executed on the same CPU ? If one task on CPU#1
was to enter a procedure of a protected object while a task on CPU#2
is actually running a procedure on the same protected object, then,
the task running on CPU#1 must be delayed, and thus, the procedure is
blocking.
Sure a procedure of a protected type or object should be short and
quick to execute, but it seems to still remains potentially blocking.
next prev parent reply other threads:[~2010-02-09 12:07 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) [this message]
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)
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