Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Задача, умоляю review решения

Anna | 24.06.2014 | нет комментариев

Есть вот такая задачка, наименование конторы-автора оставим за рамками данного обсуждения. Перед тем как постить полный текст, я сам поискал несколько фраз из него в нете и, как ни необычно, обнаружил. Эта публикация не станет первой. Итак…

Применяя С , Win32 API и STL правильно реализовать следующую задачу:

Откуда-то дано:

      class Request
      {
      };

      // возвращает NULL, если объект stopSignal указывает на надобность остановки,
      // либо указатель на память, которую в последующем требуется удалить
      Request* GetRequest(Stopper stopSignal) throw(); 

      // обрабатывает запрос, но память не удаляет, завершает обработку досрочно, если
      // объект stopSignal указывает на надобность остановки
      void ProcessRequest(Request* request, Stopper stopSignal) throw();

Задача:

1) Организовать приём запросов, для этого класть в одну очередь задания, возвращаемые функцией GetRequest.
2) Запустить несколько обрабатывающих запросы потоков (переменное число, но не менее 2-х), которые обязаны обрабатывать поступающие из очереди задания с поддержкой ProcessRequest.
3) Поработать в течение 30 секунд.
4) Правильно остановить все потоки. Если остались необработанные задания, не обрабатывать их и правильно удалить.
5) Закончить программу.

Тип Stopper должен быть определён вами и должен представлять собой механизм досрочной остановки исполняемого действия (предполагается, что GetRequest и ProcessRequest будут его правильно применять).
Вызов GetRequest может не сразу возвращать задания.
Вызов ProcessRequest может не мигом обрабатывать задание.
— Нарисовал за вечер, отправил, результат получил лишь через неделю, в духе «решение не понравилось, простите», без конкретики. Просьба к уважаемому програсообществу пояснить допустимые косяки. По ссылке ~300 строк кода.

Собственно мой вариант: http://pastebin.com/kTQDQyLr

Волнует, что именно нехорошо и отчего так делать невозможно. Экстраординарно Дабы отныне таких ошибок не делать.
Указывайте в комментариях суть задачи, наименование классаметоданомера строк. Предварительно спасибо!

 

Источник: programmingmaster.ru

 

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB