From: "R. Tim Coslet" <coslett@kaisere.com>
Subject: Re: Protected Objects (Geeenhills & VxWorks)
Date: 2000/02/10
Date: 2000-02-10T00:00:00+00:00 [thread overview]
Message-ID: <38A3847B.3954E093@kaisere.com> (raw)
In-Reply-To: 38a37a91.0@news.pacifier.com
While I'd still like to know what is going wrong with what I had before, I
gave up on this approach.
I removed the Check_For_Timeout procedure and all the private variables
except Available. Then changed the call to the Send entry in the I/O
Processing Task to a Timed Entry Call (LRM section 9.7.2)... and
everything seems to work fine now.
DuckE wrote:
> Suggestion: Just for grins try the following minor restructing:
>
> protected type Example_Protected_Object is
>
> entry Send;
> procedure Signal_Available;
> procedure Check_For_Timeout;
>
> private
>
> Available : Boolean := False;
> I_Am_Tired_Of_Waiting : Boolean := False;
> Waiting : Boolean := False;
> CanSend : Boolean := False;
> end Example_Protected_Object;
>
> protected body Example_Protected_Object is
>
> entry Send when CanSend is
> begin
>
> -- Do some things here...
>
> -- reset the barrier flags
> Available := False;
> I_Am_Tired_Of_Waiting := False;
>
> -- reset the waiting flag
> Waiting := False;
> CanSend := Available or I_Am_Tired_Of_Waiting;
> end Send;
>
> procedure Signal_Available is
> begin
>
> -- set the barrier flag to indicate data has been received
> Available := True;
> CanSend := Available or I_Am_Tired_Of_Waiting;
> end Signal_Available;
>
> procedure Check_For_Timeout is
> begin
>
> -- set the barrier flag to indicate data has not been received
> I_Am_Tired_Of_Waiting := Waiting;
>
> -- set the waiting flag
> Waiting := True;
> CanSend := Available or I_Am_Tired_Of_Waiting;
> end Check_For_Timeout;
>
> end Example_Protected_Object;
>
> The logic is exactly the same as what you had before, but the blocking
> condition is a simple boolean.
>
> I have found that in practice this makes things go more smoothly (not
> to mention it makes the logic easier to follow).
>
> I hope this helps.
>
> SteveD
next prev parent reply other threads:[~2000-02-10 0:00 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-02-10 0:00 Protected Objects (Geeenhills & VxWorks) R. Tim Coslet
2000-02-10 0:00 ` Tucker Taft
2000-02-10 0:00 ` R. Tim Coslet
2000-02-10 0:00 ` R. Tim Coslet
2000-02-10 0:00 ` DuckE
2000-02-10 0:00 ` R. Tim Coslet [this message]
2000-02-10 0:00 ` R. Tim Coslet
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox