<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/util/thread, branch stable-23-2</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=stable-23-2</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=stable-23-2'/>
<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>Add ydb changelog</title>
<updated>2022-07-11T08:24:19Z</updated>
<author>
<name>bazeltsev</name>
<email>bazeltsev@ydb.tech</email>
</author>
<published>2022-07-11T08:24:19Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=8895ca7eeadc7a652558c10eb505ff84270a14b2'/>
<id>urn:sha1:8895ca7eeadc7a652558c10eb505ff84270a14b2</id>
<content type='text'>
updated</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>IGNIETFERRO-1105 TAtomic -&gt; std::atomic in util/thread/lfqueue.h</title>
<updated>2022-05-04T09:17:36Z</updated>
<author>
<name>eeight</name>
<email>eeight@yandex-team.ru</email>
</author>
<published>2022-05-04T09:17:36Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=1af8bb8789fdb0ca2927ff097537916a7f297bb1'/>
<id>urn:sha1:1af8bb8789fdb0ca2927ff097537916a7f297bb1</id>
<content type='text'>
ref:8cf44e7b3fecd13c3a0c699a8c1c7abe780eab0b
</content>
</entry>
<entry>
<title>IGNIETFERRO-1105 TAtomic -&gt; std::atomic in util/thread/lfstack.h</title>
<updated>2022-04-27T07:20:47Z</updated>
<author>
<name>eeight</name>
<email>eeight@yandex-team.ru</email>
</author>
<published>2022-04-27T07:20:47Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=590e169a0a90aafab8247e6f1797b646d897f086'/>
<id>urn:sha1:590e169a0a90aafab8247e6f1797b646d897f086</id>
<content type='text'>
ref:7fac644f716f0423df5d65d6ba11439ca0ca35d1
</content>
</entry>
<entry>
<title>remove unused includes</title>
<updated>2022-04-07T05:59:43Z</updated>
<author>
<name>tobo</name>
<email>tobo@yandex-team.ru</email>
</author>
<published>2022-04-07T05:59:43Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=8d0bed04edbd809859fe349779c07ef122fdeca2'/>
<id>urn:sha1:8d0bed04edbd809859fe349779c07ef122fdeca2</id>
<content type='text'>
ref:f8c119cf3a796a59ab5be4424e5364ba6a201d40
</content>
</entry>
<entry>
<title>intermediate changes</title>
<updated>2022-03-15T10:35:56Z</updated>
<author>
<name>arcadia-devtools</name>
<email>arcadia-devtools@yandex-team.ru</email>
</author>
<published>2022-03-15T10:35:56Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=094638589de6a6c9f91fad0005843fc1c1adc957'/>
<id>urn:sha1:094638589de6a6c9f91fad0005843fc1c1adc957</id>
<content type='text'>
ref:ca7a95e8c9a9d780f96497136a152091d54e61b5
</content>
</entry>
<entry>
<title>clang-tidy - move-constructor and move-assignment operators should be marked noexcept + pass some args by reference</title>
<updated>2022-02-28T09:04:09Z</updated>
<author>
<name>tobo</name>
<email>tobo@yandex-team.ru</email>
</author>
<published>2022-02-28T09:04:09Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=f23d808d6c8b0f50c51b44baad1f919cab389cde'/>
<id>urn:sha1:f23d808d6c8b0f50c51b44baad1f919cab389cde</id>
<content type='text'>
ref:5da43163e6b3c2499597234dc80ad47042259013
</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;gridem@yandex-team.ru&gt;. Commit 2 of 2.</title>
<updated>2022-02-10T13:52:11Z</updated>
<author>
<name>gridem</name>
<email>gridem@yandex-team.ru</email>
</author>
<published>2022-02-10T13:52:11Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2cc287f6e8cbdfbab1153770572ad4bd1aee9b37'/>
<id>urn:sha1:2cc287f6e8cbdfbab1153770572ad4bd1aee9b37</id>
<content type='text'>
</content>
</entry>
</feed>
