orocos-toolchain / rtt

Orocos Real-Time Toolkit
http://www.orocos.org
Other
72 stars 79 forks source link

corba: revert oneway writes and fixed connection cleanup and TAO builds #151

Closed meyerj closed 8 years ago

meyerj commented 8 years ago

This PR adds some patches that fix the behavior of the CORBA transport in the toolchain-2.9 branch, which is a merge of various features, especially the efficiency patches (#123) and the updated dataflow semantics (#114).

The first commit 63218b0 fixes an issue that broke the proper cleanup after one end of a CORBA connection terminates or crashes. Now the RemoteChannelElement::write() call would return the WriteStatus NotConnected and thus indirectly, via the dispatcher, cause the writing side to remove the connection from the port. This is basically the behavior of RTT versions before 2.9. It is up to the user to eventually reestablish broken connections if the port's write call returns NotConnected in case this is required.

The second commit f69a0b7 reintroduces the standard blocking two-ways CORBA calls unless RTT has been compiled with the cmake option PLUGINS_CORBA_PORTS_WRITE_ONEWAY enabled explicitly. See also discussion in #122 and #123 for further information on this issue. It is up to a future update to make this a run-time option, e.g. by adding a boolean field reliable to the ConnPolicy struct.

The last commit bc6503b fixes some small issues if RTT is compiled with TAO as underlying CORBA implementation and corrects some whitespace inconsistencies. It has been tested with TAO 2.3.1 and all the unit tests run successfully now.