Browse Source

never modify while iterating

synchronous
Volker Birk 5 years ago
parent
commit
f92c34be35
  1. 4
      passphrase_cache.cc
  2. 1
      passphrase_cache.hxx

4
passphrase_cache.cc

@ -1,3 +1,4 @@
#include <cassert>
#include "passphrase_cache.hh"
namespace pEp {
@ -19,6 +20,7 @@ namespace pEp {
const char *PassphraseCache::add(std::string passphrase)
{
assert(_which == _cache.end()); // never modify while iterating
std::lock_guard<std::mutex> lock(_mtx);
if (passphrase != "") {
@ -50,12 +52,14 @@ namespace pEp {
void PassphraseCache::cleanup()
{
assert(_which == _cache.end()); // never modify while iterating
while (!_cache.empty() && _cache.front().tp < clock::now() - _timeout)
_cache.pop_front();
}
void PassphraseCache::refresh(cache::iterator entry)
{
assert(_which == _cache.end()); // never modify while iterating
entry->tp = clock::now();
_cache.splice(_cache.end(), _cache, entry);
}

1
passphrase_cache.hxx

@ -1,5 +1,4 @@
#pragma once
#include <cassert>
#include "passphrase_cache.hh"
namespace pEp {

Loading…
Cancel
Save