Status

DONE

Background

ACS makes use of ACE library to implement thread scope variables. ACE is a well maintained middleware for portability which also offers a Thread-Local Storage (TLS) implementation called Thread-Specific Storage (TSS) because it was not officially offered by C++ or Boost years ago. While using the ACE implementation is not a problem on its own for as long as we keep using ACE/TAO as CORBA vendor. That said, these days the standard C++ library provides a mechanism for TLS on static and global variables, which is enough for our use case. The ACE TSS implementation is a bit more flexible, allowing to have instance TLS variable, but for our use cases, the class TLS variable is more than enough, allowing us to detach from this dependency.

Alternatives

  • Keep using ACE TSS
  • Use the C++ standard TLS

Implementation

The implementation is ultimately based on the C++ standard TLS because it is more portable in the long term and we're not currently using the additional flexibility from ACE TSS implementation. The implementation is marked for 2022JUN release. Details can be found in the ticket:

ICT-20133 - Getting issue details... STATUS

  • No labels