<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/util, branch CLI_2.23.0</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=CLI_2.23.0</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=CLI_2.23.0'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2025-06-23T14:55:31Z</updated>
<entry>
<title>Intermediate changes</title>
<updated>2025-06-23T14:55:31Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-06-23T14:37:23Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=4f0653f7f54175eeff7d9713752b33f9a236ce52'/>
<id>urn:sha1:4f0653f7f54175eeff7d9713752b33f9a236ce52</id>
<content type='text'>
commit_hash:2cae4f8b8ad560eb417e09ac5ff75d2c9df3cb59
</content>
</entry>
<entry>
<title>Add TUniqueTypeList and NTL::TUnique</title>
<updated>2025-06-22T17:59:19Z</updated>
<author>
<name>yurial</name>
<email>yurial@yandex-team.com</email>
</author>
<published>2025-06-22T17:31:56Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=7a0ac031fb88c8be200d5849184d45a3acc2ebea'/>
<id>urn:sha1:7a0ac031fb88c8be200d5849184d45a3acc2ebea</id>
<content type='text'>
Позволяет получить TTypeList с уникальными типами.
commit_hash:589914da95d44bdc457d7e4341e4a377df2da2b8
</content>
</entry>
<entry>
<title>Upver wine 10.8</title>
<updated>2025-06-19T19:28:33Z</updated>
<author>
<name>nechda</name>
<email>nechda@yandex-team.com</email>
</author>
<published>2025-06-19T18:29:41Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=bcacbf3392fc63c23fdb5dba423540f1121f1842'/>
<id>urn:sha1:bcacbf3392fc63c23fdb5dba423540f1121f1842</id>
<content type='text'>
commit_hash:db0a0308d356c8dca2520f3881de2615edcc4455
</content>
</entry>
<entry>
<title>Check that bytes consist of 8 bits</title>
<updated>2025-06-17T00:11:42Z</updated>
<author>
<name>akhropov</name>
<email>akhropov@yandex-team.com</email>
</author>
<published>2025-06-16T23:56:01Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=1496d6ee1dfd8d449a3f9de4703f86dd5a1243f5'/>
<id>urn:sha1:1496d6ee1dfd8d449a3f9de4703f86dd5a1243f5</id>
<content type='text'>
commit_hash:9eaf085276f1f93768b8b0e5ec92a53bf0db86a8
</content>
</entry>
<entry>
<title>Add TMultiHashMap::node_allocator_type</title>
<updated>2025-06-11T03:10:18Z</updated>
<author>
<name>sergey-tiunov</name>
<email>sergey-tiunov@yandex-team.com</email>
</author>
<published>2025-06-11T02:54:51Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=53c1be817cfaaf0d9e498fcbb0ba9c860be12382'/>
<id>urn:sha1:53c1be817cfaaf0d9e498fcbb0ba9c860be12382</id>
<content type='text'>
Добавляем `TMultiHashMap::node_allocator_type` по аналогии с [THashMap::node_allocator_type](https://a.yandex-team.ru/arcadia/util/generic/hash.h?rev=rXXXXXX#L19), чтобы вычислять объем занимаемой памяти объектов `TMultiHashMap`.
commit_hash:49c8bbcd57ac8292ff1fffa7b59e45fdd88c3278
</content>
</entry>
<entry>
<title>[util] the THashSet::operator== must compare elements using their comparison operators.</title>
<updated>2025-06-07T22:49:17Z</updated>
<author>
<name>swarmer</name>
<email>swarmer@yandex-team.com</email>
</author>
<published>2025-06-07T22:34:30Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=34373eed70ab488a62709077127516eb1970f112'/>
<id>urn:sha1:34373eed70ab488a62709077127516eb1970f112</id>
<content type='text'>
The C++ standard describes the requirements for comparing unordered containers in [unord.req.general]:
&gt; Two unordered containers a and b compare equal if a.size() == b.size() and,
&gt; for every equivalent-key group [Ea1, Ea2) obtained from a.equal_range(Ea1),
&gt; there exists an equivalent-key group [Eb1, Eb2) obtained from b.equal_range(Ea1),
&gt; such that is_permutation(Ea1, Ea2, Eb1, Eb2) returns true.

THashSet should use the same comparison logic.
commit_hash:b897cd7387d275324bb22268d0be79da4e74bf16
</content>
</entry>
<entry>
<title>[util] Obtain uptime from the clock_gettime syscall</title>
<updated>2025-05-30T23:15:51Z</updated>
<author>
<name>swarmer</name>
<email>swarmer@yandex-team.com</email>
</author>
<published>2025-05-30T22:59:29Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=a07a46cd2b9d577d4945aa186d04d6c0df6ef556'/>
<id>urn:sha1:a07a46cd2b9d577d4945aa186d04d6c0df6ef556</id>
<content type='text'>
Reading /proc/uptime is about a hundred times slower than accessing the same timer via the clock_gettime call. The latter also has better precision.
commit_hash:70904860adc43c9d2d6487a415a2e6b27fe6dae7
</content>
</entry>
<entry>
<title>adding the required includes, which were previously only available transitively via the JOIN_SRCS macro</title>
<updated>2025-05-29T21:03:15Z</updated>
<author>
<name>swarmer</name>
<email>swarmer@yandex-team.com</email>
</author>
<published>2025-05-29T20:44:34Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=84ed20e74a904d6aa8d73c36f928d9c4628d040f'/>
<id>urn:sha1:84ed20e74a904d6aa8d73c36f928d9c4628d040f</id>
<content type='text'>
commit_hash:9769490daa4d0e88eaf1b4147ccc961be6031d04
</content>
</entry>
<entry>
<title>better fork-aware pool</title>
<updated>2025-05-22T12:40:47Z</updated>
<author>
<name>a11ax</name>
<email>a11ax@yandex-team.com</email>
</author>
<published>2025-05-22T12:00:59Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=c28fa5a5d4eee687fa35713a3b8561b8f892992a'/>
<id>urn:sha1:c28fa5a5d4eee687fa35713a3b8561b8f892992a</id>
<content type='text'>
Было: при добавлении-удалении обьекта берем мьютекс, молимся чтобы тот не оказался залочен при форке, никак перед форком на лок не смотрим

Помимо того что это просто не очень надежно, оно не всегда работает. Может случиться так что с мьютексом все нормально, но IntrusiveList все равно [скорапчен](HIDDEN_URL и список закольцован не там где надо (по всей видимости cpu reorder на apple m1 ехидничает).

Стало: берем спинлок вместо мьютекса, в том числе берем его на время форка.
commit_hash:94145ab392390a2c0b9f885275302082524606b2
</content>
</entry>
<entry>
<title>remove unused includes</title>
<updated>2025-05-21T19:21:09Z</updated>
<author>
<name>tobo</name>
<email>tobo@yandex-team.com</email>
</author>
<published>2025-05-21T19:06:44Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=680267404b9924465250d6157bc00b0fd194a0c2'/>
<id>urn:sha1:680267404b9924465250d6157bc00b0fd194a0c2</id>
<content type='text'>
commit_hash:1853234e3cc2386843bcb3c973f43778e813efeb
</content>
</entry>
</feed>
