<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/util/thread/pool.cpp, branch stable-23-3</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=stable-23-3</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=stable-23-3'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2022-11-10T09:04:05Z</updated>
<entry>
<title>[util] Terminate instead of deadlock after fork with running thread pools</title>
<updated>2022-11-10T09:04:05Z</updated>
<author>
<name>sskvor</name>
<email>sskvor@yandex-team.com</email>
</author>
<published>2022-11-10T09:04:05Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=6d5ed9f0166178823f3a752bfe46dd7ef5042df8'/>
<id>urn:sha1:6d5ed9f0166178823f3a752bfe46dd7ef5042df8</id>
<content type='text'>
Контекст. В древнем странном коде обнаружили, что если создавать `TThreadPool` часто и конкуретно с запуском `TShellCommand`, то иногда последняя дедлочится: если начали выполнять конструктор `TThreadPool` и регистрацию в `TAtforkQueueRestarter`, захватив `TAtforkQueueRestarter::ActionMutex`, а в другом потоке параллельно сделали `fork`, то последний может форкнуться с залоченым мьютексом. Первым делом происходит вызов коллбеков из `pthread_atfork`, где мьютекс лочится заново.

Конечно, форкаться в сложных программах с тредпулами категорически запрещено, но, подозреваю, много кода в аркадии так написано. Давайте как-то защитимся от такого.</content>
</entry>
<entry>
<title>IGNIETFERRO-1105 Get rid of TAtomic in thread/pool.cpp</title>
<updated>2022-05-17T07:48:10Z</updated>
<author>
<name>eeight</name>
<email>eeight@yandex-team.ru</email>
</author>
<published>2022-05-17T07:48:10Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=1e1dfc1b3545147948cc2190bb15161f630507e9'/>
<id>urn:sha1:1e1dfc1b3545147948cc2190bb15161f630507e9</id>
<content type='text'>
ref:3fa56aa890b75b7301a3193c2ee40106281a71cb
</content>
</entry>
<entry>
<title>IGNIETFERRO-1105 TAtomic -&gt; std::atomic in util/generic/* and threadpool</title>
<updated>2022-05-11T07:40:18Z</updated>
<author>
<name>eeight</name>
<email>eeight@yandex-team.ru</email>
</author>
<published>2022-05-11T07:40:18Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=05a6fea78142058210511273b3ece21050ad137b'/>
<id>urn:sha1:05a6fea78142058210511273b3ece21050ad137b</id>
<content type='text'>
ref:39a714b781c60dca9e3b946d870971076e14ab7c
</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;seege@yandex-team.ru&gt;. Commit 2 of 2.</title>
<updated>2022-02-10T13:52:02Z</updated>
<author>
<name>seege</name>
<email>seege@yandex-team.ru</email>
</author>
<published>2022-02-10T13:52:02Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=e7d460ea3389cb4f573ef5fb09f7072549a17765'/>
<id>urn:sha1:e7d460ea3389cb4f573ef5fb09f7072549a17765</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;seege@yandex-team.ru&gt;. Commit 1 of 2.</title>
<updated>2022-02-10T13:52:02Z</updated>
<author>
<name>seege</name>
<email>seege@yandex-team.ru</email>
</author>
<published>2022-02-10T13:52:02Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=091a65e2b3147ce957ba692cf07d3790405afe0f'/>
<id>urn:sha1:091a65e2b3147ce957ba692cf07d3790405afe0f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;sievlev@yandex-team.ru&gt;. Commit 2 of 2.</title>
<updated>2022-02-10T13:51:45Z</updated>
<author>
<name>sievlev</name>
<email>sievlev@yandex-team.ru</email>
</author>
<published>2022-02-10T13:51:45Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=3288844da9a26e598b08a1f4c2362603bcf1f506'/>
<id>urn:sha1:3288844da9a26e598b08a1f4c2362603bcf1f506</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;sievlev@yandex-team.ru&gt;. Commit 1 of 2.</title>
<updated>2022-02-10T13:51:45Z</updated>
<author>
<name>sievlev</name>
<email>sievlev@yandex-team.ru</email>
</author>
<published>2022-02-10T13:51:45Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=c38d513b2c4ace7c22019ef4cc24003204b77391'/>
<id>urn:sha1:c38d513b2c4ace7c22019ef4cc24003204b77391</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;onpopov@yandex-team.ru&gt;. Commit 2 of 2.</title>
<updated>2022-02-10T13:50:38Z</updated>
<author>
<name>onpopov</name>
<email>onpopov@yandex-team.ru</email>
</author>
<published>2022-02-10T13:50:38Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=8773f7661194d4c0bdb1e3937b2ff7ae01dd13f8'/>
<id>urn:sha1:8773f7661194d4c0bdb1e3937b2ff7ae01dd13f8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;onpopov@yandex-team.ru&gt;. Commit 1 of 2.</title>
<updated>2022-02-10T13:50:38Z</updated>
<author>
<name>onpopov</name>
<email>onpopov@yandex-team.ru</email>
</author>
<published>2022-02-10T13:50:38Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=84a29dd4980d5b39615e453f289bd1a81213296d'/>
<id>urn:sha1:84a29dd4980d5b39615e453f289bd1a81213296d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;grig@yandex-team.ru&gt;. Commit 2 of 2.</title>
<updated>2022-02-10T13:50:24Z</updated>
<author>
<name>grig</name>
<email>grig@yandex-team.ru</email>
</author>
<published>2022-02-10T13:50:24Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=beb63ece3a6872dfbe113104f524ab6fdbec0adc'/>
<id>urn:sha1:beb63ece3a6872dfbe113104f524ab6fdbec0adc</id>
<content type='text'>
</content>
</entry>
</feed>
