Summary: | Switch RTCORBA support over to PortableInterceptors | ||
---|---|---|---|
Product: | TAO | Reporter: | Ossama Othman <ossama.othman> |
Component: | RTCORBA | Assignee: | DOC Center Support List (internal) <tao-support> |
Status: | ASSIGNED --- | ||
Severity: | normal | ||
Priority: | P3 | ||
Version: | 1.2.2 | ||
Hardware: | All | ||
OS: | All | ||
Bug Depends on: | |||
Bug Blocks: | 890 |
Description
Ossama Othman
2002-04-17 18:41:01 CDT
When TAO's RTCORBA support was first implemented, PortableInterceptor support was not as well developed as it is now. As such, several proprietary hooks were used to provide functionality that would normally would have been provided by PortableInterceptors (e.g. service context list insertion and extraction). Now that PortableInterceptor support in TAO has matured, switching TAO's RTCORBA support to use PortableInterceptors would allow us to remove those proprietary hooks. This provides us with a few benefits: 1. Less function calls in the critical path. 2. Allows us to fix bug 890 (broken service context list manip on restart) Similar changes will have to be done to TAO's FT support. Assigned to tao-support Accepted This may simply not wor for RTCORBA. The showstopper is the memory management for the interceptors. Inserting Servicecontext is very expensive with interceptors. More accurately, ServiceContext insertion and extraction via interceptors is expensive due to inefficiencies imposed by the C++ mapping. TAO's Interceptor support itself is not the bottleneck. Furthermore, extraction is the major showstopper due to the multiple allocations (e.g (1) allocation of the ServiceContext, (2) allocation of the data sequence when setting its length) and copies that occur due to adherence to the C++ mapping parameter passing rules. |