lace.make_observer.rid: Handle storage_Error locally.
This commit is contained in:
@@ -18,6 +18,7 @@ is
|
||||
end destroy;
|
||||
|
||||
|
||||
|
||||
------------
|
||||
-- Responses
|
||||
--
|
||||
@@ -32,6 +33,7 @@ is
|
||||
end add;
|
||||
|
||||
|
||||
|
||||
overriding
|
||||
procedure rid (Self : access Item; the_Response : in Response.view;
|
||||
to_Kind : in Event.Kind;
|
||||
@@ -39,9 +41,14 @@ is
|
||||
is
|
||||
begin
|
||||
Self.Responses.rid (Self, the_Response, to_Kind, from_Subject);
|
||||
|
||||
exception
|
||||
when storage_Error =>
|
||||
null; -- The observer is dead.
|
||||
end rid;
|
||||
|
||||
|
||||
|
||||
overriding
|
||||
procedure relay_responseless_Events (Self : in out Item; To : in Observer.view)
|
||||
is
|
||||
@@ -50,6 +57,7 @@ is
|
||||
end relay_responseless_Events;
|
||||
|
||||
|
||||
|
||||
-------------
|
||||
-- Operations
|
||||
--
|
||||
|
||||
@@ -42,6 +42,7 @@ is
|
||||
end Name_of;
|
||||
|
||||
|
||||
|
||||
--------------
|
||||
-- Connections
|
||||
--
|
||||
@@ -67,15 +68,10 @@ is
|
||||
to_Event_Kind : in Event.Kind;
|
||||
Subject_Name : in String)
|
||||
is
|
||||
begin
|
||||
begin
|
||||
the_Observer.rid (for_Response,
|
||||
to_Event_Kind,
|
||||
Subject_Name);
|
||||
exception
|
||||
when storage_Error =>
|
||||
null; -- The observer is dead.
|
||||
end;
|
||||
|
||||
begin
|
||||
from_Subject.deregister (the_Observer,
|
||||
@@ -88,6 +84,7 @@ is
|
||||
end disconnect;
|
||||
|
||||
|
||||
|
||||
----------
|
||||
-- Logging
|
||||
--
|
||||
|
||||
Reference in New Issue
Block a user