Как я могу формально проверить правильность реализации WaitGroup на C++?C++

Программы на C++. Форум разработчиков
Anonymous
Как я могу формально проверить правильность реализации WaitGroup на C++?

Сообщение Anonymous »

Описание
Я реализовал WaitGroup на C++, предполагая, что:
  • пользователь должен убедиться, что счетчик значение не опускается ниже нуля.
  • WaitGroup можно использовать повторно.
Ниже приведен мой код:

Код: Выделить всё

class WaitGroup {
public:
void Add(size_t count) {
lock_guard lock(mutex_);
count_ += count;
}

void Done() {
lock_guard lock(mutex_);
if (--count_ == 0) {
cv_.notify_all();
}
}

void Wait() {
unique_lock lock(mutex_);
cv_.wait(lock, [this] { return count_ == 0; });
}

private:
size_t count_{0};
mutex mutex_;
condition_variable cv_;
};
Вопрос
Как я могу формально проверить правильность реализации моей группы ожидания?


Подробнее здесь: https://stackoverflow.com/questions/786 ... ation-in-c

Вернуться в «C++»