Как я могу формально проверить правильность реализации 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_;
};
Вопрос
Как я могу формально проверить корректность моей реализации WaitGroup?
Каков общий способ доказать такие вещи?< /п>

Подробнее здесь: https://stackoverflow.com/questions/786 ... ation-in-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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