| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
commit_hash:af06eeb383729e2b7ce1254d0a24f68b126591fe
|
| |
|
|
|
| |
This fixes a typo caught by GameRoMan in https://github.com/yandex/perforator/pull/51
commit_hash:0fba8e46bed70f3afbd3f4a5a473be24c67e8f2f
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
commit_hash:3151ac4c7e3a3f787cd3936b642f516242f6d47c
|
| |
|
|
|
| |
changed bad code
commit_hash:8053651f4c77622c3e55a5d169d7798e6a2c912d
|
| |
|
|
|
|
|
| |
deleted twice
KIKIMR-23792
commit_hash:08d23be6f557b28355c02b4dd98adf02db24b64b
|
| |
|
|
|
|
|
| |
initialization of the random engine
KIKIMR-23792
commit_hash:2163a621a44ee5d142cb9d88719def28a393b354
|
| |
|
|
| |
commit_hash:5dc8e46003b70c95c2aaf80e8772e2de6f5d7e54
|
| |
|
|
| |
commit_hash:490ce843e0fa3ad97bc6865d6b8fb8a79678d469
|
| |
|
|
|
| |
This implementation breaks GCC when compiling plain C code: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114007
commit_hash:963bf8890ce591a67c84996a2bd3411442cba58e
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
```
Also, rename `Y_HAVE_ATTRIBUTE` to `Y_HAS_ATTRIBUTE` for consistency.
commit_hash:7994e363e1c7632e0451891862d406d19ca24863
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
```
[pg@arc ~]$ ./util-ut
<----- TSaveLoadTest
[exec] TSaveLoadTest::TestSaveLoad...
[good] TSaveLoadTest::TestSaveLoad
[exec] TSaveLoadTest::TestSaveLoadEmptyStruct...
[good] TSaveLoadTest::TestSaveLoadEmptyStruct
[exec] TSaveLoadTest::TestNewStyle...
[good] TSaveLoadTest::TestNewStyle
[exec] TSaveLoadTest::TestNewNewStyle...
[good] TSaveLoadTest::TestNewNewStyle
[exec] TSaveLoadTest::TestList...
[good] TSaveLoadTest::TestList
[exec] TSaveLoadTest::TestTuple...
[good] TSaveLoadTest::TestTuple
[exec] TSaveLoadTest::TestVariant...
[good] TSaveLoadTest::TestVariant
[exec] TSaveLoadTest::TestOptional...
[good] TSaveLoadTest::TestOptional
[exec] TSaveLoadTest::TestInheritNonVirtualClass...
[good] TSaveLoadTest::TestInheritNonVirtualClass
[exec] TSaveLoadTest::TestInheritVirtualClass...
[good] TSaveLoadTest::TestInheritVirtualClass
-----> TSaveLoadTest -> ok: 10
[DONE] ok: 10
[pg@arc ~]$ uname -a
FreeBSD arc.freebsd.devtools 14.2-RELEASE-p1 FreeBSD 14.2-RELEASE-p1 GENERIC amd64
[pg@arc ~]$
```
commit_hash:229d8aa6c8ccce1376d152a833fe8bf7c5faa3bd
|
| |
|
|
|
| |
Fix
commit_hash:3ceec269bc1e9f318949493b79d1536db72d8a11
|
| |
|
|
|
| |
Add Y_NO_UNIQUE_ADDRESS
commit_hash:ef4b0719294a6019a0b5802769cb2a15c2dd1b64
|
| |
|
|
| |
commit_hash:2cae4f8b8ad560eb417e09ac5ff75d2c9df3cb59
|
| |
|
|
|
| |
Позволяет получить TTypeList с уникальными типами.
commit_hash:589914da95d44bdc457d7e4341e4a377df2da2b8
|
| |
|
|
| |
commit_hash:db0a0308d356c8dca2520f3881de2615edcc4455
|
| |
|
|
| |
commit_hash:9eaf085276f1f93768b8b0e5ec92a53bf0db86a8
|
| |
|
|
|
| |
Добавляем `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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
operators.
The C++ standard describes the requirements for comparing unordered containers in [unord.req.general]:
> Two unordered containers a and b compare equal if a.size() == b.size() and,
> for every equivalent-key group [Ea1, Ea2) obtained from a.equal_range(Ea1),
> there exists an equivalent-key group [Eb1, Eb2) obtained from b.equal_range(Ea1),
> such that is_permutation(Ea1, Ea2, Eb1, Eb2) returns true.
THashSet should use the same comparison logic.
commit_hash:b897cd7387d275324bb22268d0be79da4e74bf16
|
| |
|
|
|
| |
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
|
| |
|
|
|
|
| |
transitively via the JOIN_SRCS macro
commit_hash:9769490daa4d0e88eaf1b4147ccc961be6031d04
|
| |
|
|
|
|
|
|
|
| |
Было: при добавлении-удалении обьекта берем мьютекс, молимся чтобы тот не оказался залочен при форке, никак перед форком на лок не смотрим
Помимо того что это просто не очень надежно, оно не всегда работает. Может случиться так что с мьютексом все нормально, но IntrusiveList все равно [скорапчен](HIDDEN_URL и список закольцован не там где надо (по всей видимости cpu reorder на apple m1 ехидничает).
Стало: берем спинлок вместо мьютекса, в том числе берем его на время форка.
commit_hash:94145ab392390a2c0b9f885275302082524606b2
|
| |
|
|
| |
commit_hash:1853234e3cc2386843bcb3c973f43778e813efeb
|
| |
|
|
| |
commit_hash:eebf8de05f89401d692625c13336aad120b149fc
|
| |
|
|
| |
commit_hash:b43c96b868cd36d636192fd2c6024d9f0d2fb6f8
|
| |
|
|
| |
commit_hash:f542118888ac27e5c731c6da1de70b30e2a082e9
|
| |
|
|
| |
commit_hash:38a7fed85214a0b939bdd770ba2244ff0f195f63
|
| |
|
|
|
| |
Don't copy a `const char *` into a temporary `TString`, only to convert it back to a `const char *`.
commit_hash:f291a94106900ceae8ae830f20716cb35f8aab2d
|
| |
|
|
| |
commit_hash:4149625a81c51af40642fe498a887608cc57305f
|
| |
|
|
| |
commit_hash:ae46d476745bcde01f2465ccfec1ae45e8d29d1e
|
| |
|
|
| |
commit_hash:2b7b64700156a1d0ddea136ff1c94469867108fe
|
| |
|
|
| |
commit_hash:8174b7a8774277eccfa7768caeabde7f2c52b5bc
|
| |
|
|
| |
commit_hash:acff119fbd5252738b5c3a948a428b3cb2a36801
|
| |
|
|
| |
commit_hash:4c198f344c22ca2387327f8ed6f9bed70d33f7e1
|
| |
|
|
| |
commit_hash:4a6a74639669cf2836dedbc7b61efb1f43faef1f
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Продолжение починки крэшей при форке
Ситуация такая же - используем subprocess для обработки данных ( subprocess не наши, написаны множеством команд на нескольких языках под конкретные ситуации), быстро избавиться от форка не получится. Есть шанс избавиться от этого пул треда, но тоже не быстро.
Предлагается простое решение - не вызывать `TAtforkQueueRestarter::Get()`совсем, тогда не будет создание singletonа и вызова `pthread_atfork`. Все это под опцией `SetForkAware` - кто хочет может ее включать, для всех остальных ничего не изменится.
Полная обратная совместимость, фикс ничего не мог зацепить. Проверил локально, вызова `pthread_atfork` нет в `unified agent` больше.
Тесты на это очень сложно написать, без больших изменений в тред пуле, пробовал с перехватом `pthread_atfork`, к сожалении, не только `TAtforkQueueRestarter` им пользуется и нормально перехватить тоже не получилось.
commit_hash:3711c6175ca64564f31f811ee1308d70ef6eb5e3
|
| |
|
|
| |
commit_hash:a86d9f2d841389cbec73f6976d4a0f78fc152116
|
| |
|
|
| |
commit_hash:44102d9b2c000eefdfd91997a40a055b29d647c7
|
| |
|
|
| |
commit_hash:8adef8417b7bb90754f71cf0a5be075dee84a718
|
| |
|
|
| |
commit_hash:08f65c81be02eb75781b150a4e6f683dc9be31a3
|
| |
|
|
| |
commit_hash:97d3f3aa633aa9376f38930ef3b6bdb5e784bb97
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Detected by clang 20
```cpp
struct TFoo {
const int X[10];
};
void Foo() {
TArrayRef<const int> a{TFoo{}.X}; // error
}
```
commit_hash:299f849c2d3cc640866eee3ff82be37f624ac70d
|
| |
|
|
| |
commit_hash:140767fba3ddf262d702b06bc0bade2616e5a317
|
| |
|
|
|
|
|
| |
This macro was previously used to conditionally toggle `lifetimebound` for `TString`-related functions which took its copy-on-write behaviour into account.
As of rXXXXXX this is no longer used.
commit_hash:93ac110d46ffbe59751c2cecc685b9838bba42b4
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
account copy-on-write semantics
`TString` is a copy-on-write type, which means that in some cases the valid lifetime of its data might extend beyond the lifetime of an individual `TString` (if it was copied).
However, there are practically no cases where this behaviour is appropriate, and leaving around an "owning" `TString` is undesirable.
Due to this behaviour we have previously refrained from enabling `[[clang::lifetimebound]]` for `TStringBuf` constructors, because some cases of view construction from a temporary `TString` were in fact valid.
This commit enables the check, as all existing related bugs in Arcadia have been fixed. Please see the related ticket and the announcement on Этушка (link will be in the post-commit comments) for more information.
commit_hash:b2b6831ac3106a4e76064b85ec2d748b415ed67c
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
family
Specialize StripString functions for the std::string_view and TStringBuf types.
An example of erroneous code in which the compiler will be able to detect a problem with the lifetime of temporary string:
```
TStringBuf sb = StripString(TStringBuf{" abc "s});
Use(sb); // segfault
```
commit_hash:ad47648de30fd1a7e59d39a8ec3918fd1484a0ba
|
| |
|
|
|
|
| |
Проблема: исключения отнаследованные от `TWithBackTrace` едят много CPU, что уже приводило к инцидентам. Кроме того, они не работают в фреймворке uservices.
Решение: разрешить отключать сбор бэктрейсов в рантайме
commit_hash:ad101368d384c90b5b37ac66276ae6611731d579
|
| |
|
|
|
|
|
| |
Fix linking errors due to missed _Unwind_Backtrace symbol.
Fix linking error due to missed CurrentThreadId implementation.
commit_hash:ba09595a0e5feaefe5ad506c0005815f4c11a153
|
| |
|
|
| |
commit_hash:9ec33d0cbe2da6aeea6e8d02fdaed5f45b6e3534
|