LINUX.ORG.RU

Не взлетит... Поздно, уже скомпилялось

 


0

2
	Queue::Queue(const Properties& props)
	:	queue_(props.getInteger("Queue.Size"))
	,	worker_(queue_, [ this, &props ]() -> ThreadPoolT::Config 
	
		{ //lambda returns config begin

			ThreadPoolT::Config c = { //config begin
				props.getInteger("Queue.Workers"),
			[ this, &props ](){ //thread task lambda
				boost::this_thread::interruption_point();

				LogCategory* log = Log::instance()->createCategory("Server.Queue");
				try
				{
				DB db;
				db.init("DBWriter", props, log); 

				boost::posix_time::milliseconds delay(props.getInteger("Queue.WriteDelay"));

				while (true)
				{
					boost::this_thread::interruption_point();
					Message* msg;

					while (queue_.dequeue(msg))
					{
							assert(msg && "Queue data seems like inconsistent");
							{
								if (msg->type() == MessageID::E)
								{
									Parser::EMessage& er = *(Parser::EMessage*)msg;

									db.callPreparedStoredProc("CALL p_LoadERepo(?,?,NOW(), ?,?,?,?,?,?,?,?)", 
										er , [ this ] (sql::PreparedStatement& stmt, const Parser::EMessage& er) {
											stmt.setUInt	(1,		er.getExecID());
...
											stmt.setUInt	(11,	t.getSellerIsPrinted());
									});

								}
							}
					}
					LDebug(*log) << "queue is empty, wait for delay";
					boost::this_thread::sleep(delay);
					boost::this_thread::interruption_point();
				}
				}
				catch (const std::exception& e)
				{
					LError(*log) << std::string("Queue initialization error: ").append(e.what());
				}

	},
		[] (boost::thread& t) { //lambda that stopping thread
			t.interrupt();
			t.join();
		}
	}; //config ends here
	return c; }() //call embracing lambda (//lambda returns config end)
	)
{}

========== Build: 2 succeeded, 0 failed, 4 up-to-date, 0 skipped ==========

Два вопроса: «как?» И на*... «почему?»

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Автора убить. Нет, сначала заставить сдать экзамен по английскому, а потом жестоко убить.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Я ему передам... Хотя, можно подождать еще кодревью старшими товарищами (первое чувство глядя на комит - «показалось»):)

slackwarrior ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

Ну я и говорю... Подождать пока старшим товарищам померещится

slackwarrior ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

Да я чуть борщом не подавился на этой фразе.

anonymous
()
Ответ на: комментарий от anonymous

Лямбди эту останавливающую нить!

А, вот что он имел в виду!11

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.