Re[4]: реализация читатели-писатель
От: OdesitVadim Украина  
Дата: 27.04.10 11:10
Оценка:
Здравствуйте, remark, Вы писали:

R>А в чём именно проблема?

R>Установить всем потокам флаги на остановку. Потоки перед завершением снимают все эелменты из своей очереди и удаляют. Заджоинить потоки. Всё.

R>

Ну так это я тоже понимаю. Потоки висли на этом
request* dequeue()
  {
      boost::unique_lock<boost::mutex> lock (mtx);
      while (queue.empty())
        cv.wait(lock); //<====== 
      request* req = queue.front();
      queue.pop_front();
      return req;
  }

Я при завершении рассылал им broadcast. Но так как очередь пустая, то там и оставалось. пришлось добавить выход с этого цикла по условной переменной.

Сейчас все вроде работает. будет тестировать под нагрузкой.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.