-
Key: DDS-85
-
Legacy Issue Number: 6791
-
Status: closed
-
Source: Real-Time Innovations ( Dr. Gerardo Pardo-Castellote, Ph.D.)
-
Summary:
The data available status becomes TRUE when data is available, but
under what condition does it become FALSE again?According the specification when data is taken, but does this only
apply to the object that is accessed? Or do the status values of other
objects that become untrue as a result of the take action also need to
be changed?Example: A reader with 3 queries, data arrives and the status of the
reader and all queries become TRUE. The data is taken via the reader,
do the status values of the queries become FALSE?**PROPOSAL**
Add the following clarifications to section 2.1.4.4
DataReader::take() and DataReader::read() changes the status of the
queries that are no longer true after the 'take'. Since 'take' removes
the data from the service so its no longer there it would make little
sense for the status to remain enabled.In other words the same way that arrival of data may change the 'data
available status' of any query, so would the 'taking' or 'reading' of
data potentially affect all queries.Note that this does not mean that waitesets that were attached to the
query will not be woken up. This is an implementation issue. Once the
query status changes to 'enabled' it may wake up the attached waitset,
transitioning to 'not-enabled' does not necessarily 'unwakeup' the
waitset since this operation is in general not possible. The
consequence is that the application may be woken up and not see any
active conditions. This is unavoidable if multiple threads are
concurrently taking data. -
Reported: DDS 1.0b1 — Tue, 23 Dec 2003 05:00 GMT
-
Disposition: Resolved — DDS 1.0
-
Disposition Summary:
see below
-
Updated: Fri, 6 Mar 2015 20:58 GMT
DDS — Ref-02 Data_Available_status_transition
- Key: DDS-85
- OMG Task Force: Data Distribution Service FTF