| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
`#define noexcept throw()` is a questionable idea, since replacing `noexcept` with `throw()` in expressions such as `noexcept(true)` results in spectacular compiler errors. We stopped supporting CUDA 8 (and even CUDA 9) long ago, which means we can just get rid of the problematic define.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
nvcc10.1 is unable to compile `[[clang::reinitializes]]` and issues warning as follows:
```
util/generic/ptr.h(194): warning: attribute namespace "clang" is unrecognized
util/generic/ptr.h(201): warning: attribute namespace "clang" is unrecognized
[...]
```
nvcc11 compiles this code without any warnings.
This PRs disable `[[clang::reinitialized]]` when compiling with nvcc10.
|
| |
|
|
|
| |
https://clubs.at.yandex-team.ru/arcadia/8450/8489#reply-arcadia-8489
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For example, https://github.com/google/sanitizers/issues/1352 - tsan is not working well with std::atomic_thread_fence
Minimal reproducible example (and one that bothers most in every fiber-aware service):
```
auto threadPool = NYT::New<NYT::NConcurrency::TThreadPool>(2, "thread");
TVector<NYT::TFuture<void>> futures;
for (size_t i = 0; i < 100000; ++i) {
futures.emplace_back(BIND([]() {
}).AsyncVia(threadPool->GetInvoker()).Run());
}
for (auto& future : futures) {
future.Get().ThrowOnError();
}
```
|
| |
|
|
|
| |
Если мы сдвигаем addr в меньшую сторону, то len мы должны увеличить на столько же. В противном случае, мы можем залочить меньше, чем нужно.
|
|
|
|
|
| |
This means, that moved-from object can be safely used after the call of such method.
This attribute is used by clang-tidy which checks that moved-from objects are not used
unless a reinitialization method is called first.
|
| |
|
|
|
|
| |
ref:53c837a1fa0289db60812b95b6ac96be23ae018d
|
|
|
|
| |
ref:0c3b0edd3284567c45ec77e57166274f3cfed8c7
|
|
|
|
| |
ref:7427208d08ebeb9e88247fb7dac6445bc814d756
|
|
|
|
| |
ref:788357fd9a851f54e97a8e0f133dcb3c3e275f92
|
|
|
|
| |
ref:c74bffae7e90dee515f5089979fc050d20a34e4e
|
|
|
|
| |
ref:f4d9cf527b4f26efcc95307ca7b07d1c42ebd11b
|
|
|
|
| |
ref:dca14f354fc9b9698f83663ceb0e62e797fe98c5
|
|
|
|
| |
ref:f8c119cf3a796a59ab5be4424e5364ba6a201d40
|
|
|
|
| |
ref:0186c219d9c56c8f183ce0236e33f6d647fe5fa0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
codesearch shows [114 usages](https://a.yandex-team.ru/search?search=%5CbSIZEOF_SIZE_T%5Cb,,jC,arcadia,,500) of this macro outside of contrib.
None of these usages looks as being util-dependent.
Defining this in util triggers `-Wmacro-redefined` whenever `` gets included after our ``.
UPD:
It turns out that our curl was using this define for a reason,
so I have implemented an util-independent solution instead.
ref:c80e45c42a9c0ec76eda33e63b560b285e1ee502
|
|
|
|
|
|
|
|
|
|
| |
Current behavior of RemoveDirWithContents does not allow removing
directories if any of files in this directory is read-only. This
behavior, however, does not allow, for example, to remove temporary
directory, in which git repository was created (on *nix systems,
however, this problem was not noticed). This PR overrides this behavior.
ref:1faf91e233008b4aece4f2b953884b52346ce2be
|
|
|
|
| |
ref:ca7a95e8c9a9d780f96497136a152091d54e61b5
|
|
|
|
|
|
|
|
|
|
| |
`#include ` and `#include ` modify current `#pragma pack` value and thus trigger `-Wpragma-pack` under clang-cl.
As there is no way to implement packed structs via attributes,
introduce proper compiler-specific variables in ``
and use them to check whether we are compiling with MSVC.
ref:e47cdb9c38eb305b9c5bcc5ad719e21ec52eb14c
|
|
|
|
| |
ref:b9f56a64ccc7a4f4980fa176af362932c04214b3
|
|
|
|
| |
ref:fdd92250532d24eebbf27cb8f8369eeb88e17df9
|
|
|
|
| |
ref:11bbdd83544b9579747dd12d51395840bda86faf
|
|
|
|
|
|
| |
noexcept + pass some args by reference
ref:5da43163e6b3c2499597234dc80ad47042259013
|
|
|
|
| |
ref:98e6837fcfff74a0af567f24b8c63f3353a501a1
|
|
|
|
| |
ref:e94e72a813a3aa41c543fd1d9f7d73f02cca8bc0
|
|
|
|
| |
ref:f0f0572f52d7977841789105c6b51d4ca5ea1382
|
|
|
|
| |
ref:e86419934a6858c3f36f45e15d1e42cc501ea395
|
|
|
|
| |
ref:b2a9abb354b18c7a8d339a26c1e23fba39e48c06
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently TFileStat has a bunch of problems on Windows:
1. Mode computation ORs different types, but file attributes it checks are not mutually exclusive. E.g. it is possible for directory to have both `FILE_ATTRIBUTE_DIRECTORY` and `FILE_ATTRIBUTE_ARCHIVE`, but it will currently lead to invalid `_S_IFDIR | _S_IFREG` mode.
2. Any file with `FILE_ATTRIBUTE_REPARSE_POINT` flag is considered to be symlink. But there are many other types of reparse points even user-defined ones. For more info see https://docs.microsoft.com/en-us/windows/win32/fileio/reparse-point-tags
To fix all this we do the following:
1. Add `ReparseTag` field to `TSystemFStat` and fill it for reparse points in `GetStatByHandle`.
2. Refactor `GetWinFileType` out of `GetFileMode` to ensure that we always select only single `S_IFMT` value.
3. Pass reparse tag value into `GetWinFileType` and select `S_IFLNK` only for `IO_REPARSE_TAG_SYMLINK` and `IO_REPARSE_TAG_MOUNT_POINT` tags. The latter one is a bit strange, but this behaviour is aligned with current implementation of `WinReadLink`.
4. Factor `ReadReparsePoint` out of `WinReadLink`. This function uses `DeviceIoControl` to read reparse point data into structures copied from WDK.
5. Add `WinReadReparseTag` that uses `ReadReparsePoint` to extract reparse point tag. We use this approach instead of MSDN-recommended `FindFirstFile` because latter requires file path, but we have file handle at this point. AFAIK golang and python use similar approach for this.
6. Add test for archived directory case.
7. Make symlink nofollow tests run only when symlink creation is possible for current user.
Discovered in https://st.yandex-team.ru/ARC-3931
ref:4f6735817b9f85f3351a1021a56dd7eb4606bd65
|
|
|
|
| |
ref:f149c0bc76521a1273f6a2c155f2bd116141b1eb
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
of 2.
|
|
|
|
| |
of 2.
|
| |
|
| |
|
| |
|
| |
|
| |
|