170 похожих чатов

Доброе утро! Помогите, пожалуйста с передачей и сохранением любой функции

в очереди. Почти всё работает)
https://cpp.sh/?source=%23include+%3Ciostream%3E%0A%0Ausing+namespace+std%3B%0A%0A%23include+%3Cchrono%3E%0A%23include+%3Cthread%3E%0A%23include+%3Cmutex%3E%0A%23include+%3Cqueue%3E%0A%23include+%3Ccondition_variable%3E%0A%0Ausing+namespace+std%3A%3Achrono%3B%0Ausing+namespace+std%3B%0A%0Atemplate%3Ctypename+F%3E%0Astruct+Job+%7B%0A++++time_point%3Csystem_clock%3E+time_to_exec%3B%0A%09F+func%3B%0A%7D%3B%0A%0Atemplate%3Ctypename+F%3E%0Ainline+bool+operator%3C(const+Job%3CF%3E+%26lhs%2C+const+Job%3CF%3E+%26rhs)+%7B%0A++++return+lhs.time_to_exec+%3C+rhs.time_to_exec%3B%0A%7D%3B%0A%0Astruct+Executor%0A%7B%0A++++Executor()+%7B%0A++++++++runner+%3D+thread(%26Executor%3A%3Arunning%2C+this)%3B%0A%09%7D%0A%0A++++~Executor()+%7B%0A%09%09unique_lock%3Cmutex%3E+lock(queue_mutex)%3B%0A%09%09stop+%3D+true%3B%0A%09%09runner.join()%3B%0A%09%7D%0A%0A%09void+running()+%7B%0A%09%09while(not+stop)+%7B%0A++++++++++++unique_lock%3Cmutex%3E+lock(queue_mutex)%3B%0A%0A%09%09%09if(jobs.empty())+%7B%0A++++++++++++++++cv.wait(lock%2C+%5Bthis%5D+()+%7Bnot+jobs.empty()+%7C%7C+stop%3B%7D)%3B%0A++++++++++++%7D+else+if+(jobs.top().time_to_exec+%3E+system_clock%3A%3Anow())+%7B%0A++++++++++++++++cv.wait_until(lock%2C+jobs.top().time_to_exec%2C+%5Bthis%5D()+%7Bnot+jobs.empty()+%7C%7C+stop%3B%7D)%3B%0A%09%09%09%7D+else+%7B%0A%09%09%09%09auto+job+%3D+jobs.top()%3B%0A%09%09%09%09jobs.pop()%3B%0A%09%09%09%09lock.unlock()%3B%0A%0A%09%09%09%09job()%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%0A++++template%3Ctypename+F%3E%0A++++void+exec(F+f%2C+milliseconds+timeout)+%7B%0A++++++++Job+job(f%2C+system_clock%3A%3Anow()+%2B+timeout)%3B%0A%0A%09%09unique_lock%3Cmutex%3E+lock(queue_mutex)%3B%0A%09%09jobs.push(job)%3B%0A%09%09cv.notify_one()%3B%0A%09%7D%0A%0A++++priority_queue%3CJob%3CF%3E%3E+jobs%3B+%2F%2F+%3C-----------%3F...+o_O%0A++++mutex+queue_mutex%3B%0A%09condition_variable+cv%3B%0A%09thread+runner%3B%0A%09bool+stop+%3D+false%3B%0A%7D%3B%0A%0Astring+str+%3D+%221234567%22%3B%0Aint+foo(int+5)+%7B%0A++++cout+%3C%3C+%22out+finally!%22+%3C%3C+str%5B5%5D+%3C%3C+endl%3B%0A%7D%3B%0A%0Aint+main()%0A%7B%0A++++Executor+executor%3B%0A++++executor.exec(%5B%5D()%7Bcout+%3C%3C+%22out+finally!%22%3B%7D%2C+seconds%7B5%7D)%3B%0A++++executor.exec(%26foo%2C+5%2C+seconds%7B7%7D)%3B%0A++++cout%3C%3C%22Hello+World%22%3B%0A%0A++++return+0%3B%0A%7D%0A

1 ответов

37 просмотров

Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта