Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
uv_queue_work (from libuv) делает что-то странное
|
|||
|---|---|---|---|
|
#18+
встретил странность.. поток просто перестает выполнять задание в uv_queue_work делаю тут сервер и симиэску на плюсах. в качестве реализации сервера выбрал libuv (реализацию можно менять). сделал такую фичу: можно сделать объект класса ответа на запрос, такой, чтобы определенный метод вызывался из пула потоков, а потом, после его завершения, вызывался метод ответа из основного потока. так можно например в пуле потоков загрузить какой-нибудь объект из базы в кеш, а потом уже отвечать. у меня такой обработчик весит на / а на /dep весит кое-какая отладочная ин-фа (она просто сразу отвечает в основном потоке, uv_queue_work вызывается только в /). вобщем если зайти на / а потом, пока поток думает (несколько секунд std::this_thread::sleep) написать вконце /dep и нажать enter, то срабатывает ассерт, котрый не должен сработать. смысл такой, что uv_queue_work принимает две функции - одна обрабатывается в пуле потоков, в каком-нибудь потоке, другая в основном потоке после того, как первая закончит работу. так вот этот ассерт проверяет, что срабатывает последняя строка в первом колбеке uv_queue_work - то есть что поток в пуле потоков дошел до последней строки. а не дойти он не мог. под отладчиком он её выполняет, вроде.. ссылки на код lines 144-158 - это лямбда выполняется в пуле lines 159-179 - это в основном потоке line 169 - это ассерт, который проваливается там не заверенный сертификат :) то есть получается что в asyncs_threads_ нет ни одного потока, со статусом JOB_DONE, но как такое может быть? ассерт на строке 150 не проваливается, а больше нигде не может возникнуть исключение? сейчас пытаюсь поставить нужный статус в деструторе специального объекта, но не помогает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2016, 13:52 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2018659]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
156ms |
get topic data: |
10ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 257ms |

| 0 / 0 |
