| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2021-06-18 | ErrorKind: Windows: Fix tidy | Ian Jackson | -2/+1 | |
| Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk> | ||||
| 2021-06-18 | ErrorKind: Windows: Fix botched rebase | Ian Jackson | -2/+0 | |
| Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk> | ||||
| 2021-06-18 | ErrorKind: Provide many more ErrorKinds, motivated by Unix errnos | Ian Jackson | -0/+21 | |
| Rationale for the mappings etc. is extensively discussed in the MR https://github.com/rust-lang/rust/pull/79965 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk> | ||||
| 2021-06-18 | ErrorKind: Reformat the mapping table (windows) | Ian Jackson | -22/+24 | |
| use ErrorKind::*; I don't feel confident enough about Windows things to reorder this alphabetically Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk> | ||||
| 2021-06-15 | Rename ErrorKind::Unknown to Uncategorized. | Mara Bos | -1/+1 | |
| 2021-06-15 | Redefine `ErrorKind::Other` and stop using it in std. | Mara Bos | -1/+1 | |
| 2021-05-06 | Use the proper import library names | Chris Denton | -14/+0 | |
| 2021-05-03 | Move `std::sys::windows::ext` to `std::os::windows` | Christiaan Dirkx | -1/+0 | |
| 2021-05-02 | Use ErrorKind::OutOfMemory in unix, windows, and wasi | Kornel | -0/+1 | |
| 2021-04-22 | Document that `init` and `cleanup` are not guaranteed to run | Christiaan Dirkx | -0/+2 | |
| 2021-04-22 | Move most init to `sys::init` | Christiaan Dirkx | -1/+3 | |
| 2021-04-22 | Rework `at_exit` to `cleanup` | Christiaan Dirkx | -2/+7 | |
| 2021-04-18 | Rename `NotSupported` to `Unsupported` | Christiaan Dirkx | -1/+1 | |
| 2021-04-18 | Update `decode_error_kind` to decode os errors to `NotSupported` | Christiaan Dirkx | -0/+1 | |
| 2021-03-21 | Use io::Error::new_const everywhere to avoid allocations. | Mara Bos | -2/+2 | |
| 2020-12-14 | Auto merge of #77618 - fusion-engineering-forks:windows-parker, r=Amanieu | bors | -0/+1 | |
| Add fast futex-based thread parker for Windows. This adds a fast futex-based thread parker for Windows. It either uses WaitOnAddress+WakeByAddressSingle or NT Keyed Events (NtWaitForKeyedEvent+NtReleaseKeyedEvent), depending on which is available. Together, this makes this thread parker work for Windows XP and up. Before this change, park()/unpark() did not work on Windows XP: it needs condition variables, which only exist since Windows Vista. --- Unfortunately, NT Keyed Events are an undocumented Windows API. However: - This API is relatively simple with obvious behaviour, and there are several (unofficial) articles documenting the details. [1] - parking_lot has been using this API for years (on Windows versions before Windows 8). [2] Many big projects extensively use parking_lot, such as servo and the Rust compiler itself. - It is the underlying API used by Windows SRW locks and Windows critical sections. [3] [4] - The source code of the implementations of Wine, ReactOs, and Windows XP are available and match the expected behaviour. - The main risk with an undocumented API is that it might change in the future. But since we only use it for older versions of Windows, that's not a problem. - Even if these functions do not block or wake as we expect (which is unlikely, see all previous points), this implementation would still be memory safe. The NT Keyed Events API is only used to sleep/block in the right place. [1]\: http://www.locklessinc.com/articles/keyed_events/ [2]\: https://github.com/Amanieu/parking_lot/commit/43abbc964e [3]\: https://docs.microsoft.com/en-us/archive/msdn-magazine/2012/november/windows-with-c-the-evolution-of-synchronization-in-windows-and-c [4]\: Windows Internals, Part 1, ISBN 9780735671300 --- The choice of fallback API is inspired by parking_lot(_core), but the implementation of this thread parker is different. While parking_lot has no use for a fast path (park() directly returning if unpark() was already called), this implementation has a fast path that returns without even checking which waiting/waking API to use, as the same atomic variable with compatible states is used in all cases. | ||||
| 2020-11-15 | Make the libstd build script smaller | bjorn3 | -0/+14 | |
| Remove all rustc-link-lib from the std build script. Also remove use of feature = "restricted-std" where not necessary. | ||||
| 2020-10-09 | Remove some dead code in windows-gnu std | Mateusz MikuĊa | -53/+0 | |
| 2020-10-06 | Add fast futex-based thread parker for Windows. | Mara Bos | -0/+1 | |
| 2020-08-29 | Explicitly look for 'thumb-mode' before using __fastfail on 'arm' | Ryan Levick | -1/+1 | |
| 2020-08-28 | Back to opcode for 32 bit ARM __fastfail | Ryan Levick | -1/+1 | |
| 2020-08-28 | Switch to asm! macro and use brk instruction on ARM | Ryan Levick | -3/+3 | |
| 2020-08-27 | Add __fastfail for Windows on arm/aarch64 | Ryan Levick | -3/+13 | |
| 2020-08-10 | Reverse formatting | Ryan Levick | -5/+1 | |
| 2020-08-10 | Fix up docs | Ryan Levick | -9/+9 | |
| 2020-07-28 | Get pointer from address of c directly | Lzu Tao | -2/+2 | |
| 2020-07-28 | Make use of macro to avoid repetition | Lzu Tao | -23/+10 | |
| 2020-07-28 | Remove redundant len binding | Lzu Tao | -3/+1 | |
| 2020-07-27 | mv std libs to library/ | mark | -0/+334 | |
