This is actually not a safe operation. Even a call to simply read the size of the internal vector must be protected by the mutex. If another thread called `push_back` during the execution of the `size` method, the caller of `size could get an incorrect value.