<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/util/system, branch CLI_2.26.0</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=CLI_2.26.0</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=CLI_2.26.0'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2025-09-24T23:50:07Z</updated>
<entry>
<title>feat util: fix ThreadSanitizer reported data race</title>
<updated>2025-09-24T23:50:07Z</updated>
<author>
<name>antoshkka</name>
<email>antoshkka@yandex-team.com</email>
</author>
<published>2025-09-24T23:20:37Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=6765091d97d7d54f600250b29951d91017157e90'/>
<id>urn:sha1:6765091d97d7d54f600250b29951d91017157e90</id>
<content type='text'>
```
WARNING: ThreadSanitizer: data race (pid=123179)
  Read of size 8 at 0x0000065aad98 by thread T14:
    #0 NSystemInfo::CachedNumberOfCpus() util/system/info.cpp:241:10 (taxi-uservices-userver-core-tests+0x4155bba)
    #1 engine::(anonymous namespace)::TaskProcessorThreadStartedHook() userver/core/src/engine/task/task_processor.cpp:100:15 (taxi-uservices-userver-core-tests+0x5306bc8)
    #2 engine::TaskProcessor::PrepareWorkerThread(unsigned long) userver/core/src/engine/task/task_processor.cpp:347:5 (taxi-uservices-userver-core-tests+0x5306bc8)
```

The change on a hot path is equivalent to the previously compiler generated x86 code (just a `load` instruction). On other platforms this could actually fix a data race.
commit_hash:acb1fe1b8f3075cc27b18aab4f1bd0b88292c270
</content>
</entry>
<entry>
<title>Looking for the return address more persistently</title>
<updated>2025-09-24T06:08:13Z</updated>
<author>
<name>nechda</name>
<email>nechda@yandex-team.com</email>
</author>
<published>2025-09-24T05:54:28Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=59866bbe0a49e955be270e6c145a1f5e171164a7'/>
<id>urn:sha1:59866bbe0a49e955be270e6c145a1f5e171164a7</id>
<content type='text'>
commit_hash:dafe73fcca759e0bf13ca38bdd4e320c8d85c7b6
</content>
</entry>
<entry>
<title>Use 'size_t' instead of 'yint' that is not known in util</title>
<updated>2025-09-21T19:44:36Z</updated>
<author>
<name>akhropov</name>
<email>akhropov@yandex-team.com</email>
</author>
<published>2025-09-21T19:27:35Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=138a00ef20b219fee283eb925d787823b3fb1e17'/>
<id>urn:sha1:138a00ef20b219fee283eb925d787823b3fb1e17</id>
<content type='text'>
commit_hash:c2fb7faa6674ce1b0d6a2d3cd2f0ef45a461ea0d
</content>
</entry>
<entry>
<title>fix bug in GetMemInfo on freebsd</title>
<updated>2025-08-29T16:20:50Z</updated>
<author>
<name>tldr</name>
<email>tldr@yandex-team.com</email>
</author>
<published>2025-08-29T16:01:25Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=4906bc8c585d0609d7cef4ea83891f6957665c28'/>
<id>urn:sha1:4906bc8c585d0609d7cef4ea83891f6957665c28</id>
<content type='text'>
commit_hash:47d410520be641eaa93ab44b92da8a095e72d301
</content>
</entry>
<entry>
<title>TTempFile should be move-only. Implement proper move semantics.</title>
<updated>2025-08-15T09:25:32Z</updated>
<author>
<name>akhropov</name>
<email>akhropov@yandex-team.com</email>
</author>
<published>2025-08-15T07:44:33Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=4528158cce9713da50392a22f80e9390fe37423e'/>
<id>urn:sha1:4528158cce9713da50392a22f80e9390fe37423e</id>
<content type='text'>
#### Реализация move-семантики для TTempFile и оптимизация передачи параметров 📝

- 🔄 **Сделал TTempFile move-only классом**:
  - Удалили копирующий конструктор и оператор присванивания
  - Добавили перемещающий конструктор и оператор с noexcept
  - Изменили хранение имени файла в TMaybe для безопасного перемещения
  - Добавили явное удаление временного файла в операторе перемещения

- 🏗 **Оптимизировали передачу параметров в различных классах**:
  - Заменили передачу объектов по значению/константной ссылке на перемещение (std::move)
  - Основные изменения коснулись параметров среды (envParams) и аргументов процессов

- ✨ **Улучшили обработку временных файлов**:
  - Убрали лишнее поле TTempFile из TSmallEnvParams
  - Вектор временных файлов теперь корректно хранится и обрабатывается через move-семантику

- 📝 **Прочие улучшения**:
  - Исправлены контексты вызовов, где используется временная файловая система
  - Оптимизированы аргументы запуска процессов через std::move
  - Добавлено перемещение для аргументов стандартных потоков ввода-вывода

---
**Оценить качество описания можно [здесь](https://nda.ya.ru/t/_MxIaV0Q7FnCMG**

&lt;a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"&gt;&lt;font size="2"&gt;Autodescription by Code Assistant&lt;/font&gt;&lt;/a&gt;
commit_hash:474bcbb9db8c7dc14d7aa204991ecdb4611e8e87
</content>
</entry>
<entry>
<title>TIntrusivePtr is not needed here</title>
<updated>2025-08-11T17:33:24Z</updated>
<author>
<name>akhropov</name>
<email>akhropov@yandex-team.com</email>
</author>
<published>2025-08-11T17:16:01Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=7e1e1f8e8fb81a9389e154824a781a9adfd41293'/>
<id>urn:sha1:7e1e1f8e8fb81a9389e154824a781a9adfd41293</id>
<content type='text'>
commit_hash:54b9e74039cd4f86cc8ab610b27005a5199af4f9
</content>
</entry>
<entry>
<title>Fix grammar, better wording and fix the version of the standard</title>
<updated>2025-08-10T22:05:52Z</updated>
<author>
<name>akhropov</name>
<email>akhropov@yandex-team.com</email>
</author>
<published>2025-08-10T21:53:36Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=bc638812127dd833b78c313929603c1e3a43ac06'/>
<id>urn:sha1:bc638812127dd833b78c313929603c1e3a43ac06</id>
<content type='text'>
commit_hash:af06eeb383729e2b7ce1254d0a24f68b126591fe
</content>
</entry>
<entry>
<title>Fix typo</title>
<updated>2025-08-06T09:41:00Z</updated>
<author>
<name>mikailbag</name>
<email>mikailbag@yandex-team.com</email>
</author>
<published>2025-08-06T09:04:12Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=ba4771ba91781c6aef0bfa2506302c4b3e2a2e73'/>
<id>urn:sha1:ba4771ba91781c6aef0bfa2506302c4b3e2a2e73</id>
<content type='text'>
This fixes a typo caught by GameRoMan in https://github.com/yandex/perforator/pull/51
commit_hash:0fba8e46bed70f3afbd3f4a5a473be24c67e8f2f
</content>
</entry>
<entry>
<title>Y_HAS_CPP_ATTRIBUTE macro</title>
<updated>2025-08-04T23:11:02Z</updated>
<author>
<name>swarmer</name>
<email>swarmer@yandex-team.com</email>
</author>
<published>2025-08-04T22:56:41Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=24c1e08593d85ab866a1d74210c9c254597b0ec6'/>
<id>urn:sha1:24c1e08593d85ab866a1d74210c9c254597b0ec6</id>
<content type='text'>
The new macro `Y_HAS_CPP_ATTRIBUTE` simplifies the check for C++ attribute support by handling nested `#if defined(__has_cpp_attribute)` checks.

Before:
```cpp
    #if defined(__has_cpp_attribute)
        #if __has_cpp_attribute(attribute_name)
           // use
        #else
           // fallback
        #endif
    #else
        // fallback
    #endif
```

After:
```cpp
    #if Y_HAS_CPP_ATTRIBUTE(attribute_name)
        // use
      #else
        // fallback
    #endif
```

The new macro also allows checking C++ attributes when compiling C code without raising errors related to different tokenization rules in these languages. Of course, such a test always returns `0` when compiling source code in C.

Also, rename `Y_HAVE_ATTRIBUTE` to `Y_HAS_ATTRIBUTE` for consistency.
commit_hash:9c12fe5d0e6a570d7f11910704c0a9b05d100434
</content>
</entry>
<entry>
<title>Add Y_LIFETIME_CAPTURE_BY macro</title>
<updated>2025-08-04T17:18:27Z</updated>
<author>
<name>mikhnenko</name>
<email>mikhnenko@yandex-team.com</email>
</author>
<published>2025-08-04T16:50:37Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=a735e9e5c243f1ca47d112f947cfdb7707493327'/>
<id>urn:sha1:a735e9e5c243f1ca47d112f947cfdb7707493327</id>
<content type='text'>
commit_hash:3151ac4c7e3a3f787cd3936b642f516242f6d47c
</content>
</entry>
</feed>
