There's been a slow memory leak in this template since it was written. Memory usage gradually increases over time. The memory use has never been excessive, at least partly because it's not used in that many places.
The leak happens when an existing semaphore is released through rb.semaphore.release(). In this case the semaphore object is correctly removed from all the reference structures but the memory is not then released.
The other path for deleting sempahores is through being timed out and this path correctly releases the memory.
Big in semaphore.cxx, CrbTsemaphore::release.