STL containers such as vectors/maps/sets/etc are not thread-safe. One cannot safely add or remove elements from one of these containers in one thread, whilst iterating or adding/removing in another thread without potentially catastrophic consequences (usually segmentation faults leading to eventual program failure). Currently, HPX, as The C++ Standard Library for Parallelism and Concurrency, does not have much concurrent data structure support yet. A number of libraries implementing thread-safe (sometimes lock-free) containers already exist that can be used for ideas and where code uses a boost compatible license can be integrated into HPX. In particular, LibCDS, a C++ library of Concurrent Data Structures, will be my interest as it has implemented a series of thread-safe containers using pthread. I plan to integrate LibCDS into HPX by adding hpx light-weight threading support for LibCDS. I will provide well-written unit tests and documentation on each step of my implementation.





  • John Biddiscombe
  • Mikael Simberg