Phil Vachon e1db51383b Use OS-provided thread ID primitives
Truncating 64-bit thread IDs to 32-bits can result in collisions on
systems with large numbers of CPUs. GetCurrentThreadId() does this, and
there are fairly easy to reproduce collisions on systems with ~128 CPU
cores.

The `GetCurrentThreadId` API should wrap an OS-specific way of providing
the current thread ID. Keep the XOR-folded pointer as a fallback for
OSes which aren't explicitly supported.

This fixes failures in TestSynchCritical that are readily reproducible
on such systems..

Tested on FreeBSD 14.3 and various Linux variants on x86_64.
2025-08-05 20:19:31 -04:00
2025-06-27 12:48:52 +02:00
2025-07-10 09:10:33 +02:00
2012-11-01 13:50:49 -04:00
2025-05-14 10:01:44 +02:00
2025-03-11 09:37:11 +01:00
2025-06-16 11:56:08 +02:00
2025-06-27 12:48:52 +02:00
2011-06-30 15:12:51 -04:00
2025-04-01 08:56:55 +02:00

FreeRDP: A Remote Desktop Protocol Implementation

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Enjoy the freedom of using your software wherever you want, the way you want it, in a world where interoperability can finally liberate your computing experience.

Code Quality Status

abi-checker clang-tidy-review CodeQL mingw-builder macos-builder [arm,ppc,ricsv] architecture builds [freebsd] architecture builds coverity

Resources

Project website: https://www.freerdp.com/

Issue tracker: https://github.com/FreeRDP/FreeRDP/issues

Sources: https://github.com/FreeRDP/FreeRDP/

Downloads: https://pub.freerdp.com/releases/

Wiki: https://github.com/FreeRDP/FreeRDP/wiki

API documentation: https://pub.freerdp.com/api/

Security policy: https://github.com/FreeRDP/FreeRDP/security/policy

FAQ: https://github.com/FreeRDP/FreeRDP/wiki/FAQ

Contact

Microsoft Open Specifications

Information regarding the Microsoft Open Specifications can be found at: https://www.microsoft.com/openspecifications/

A list of reference documentation is maintained here: https://github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation

Compilation

Instructions on how to get started compiling FreeRDP can be found on the wiki: https://github.com/FreeRDP/FreeRDP/wiki/Compilation

Description
No description provided
Readme Apache-2.0 79 MiB
Languages
C 87.5%
C++ 3.5%
CMake 3.2%
Objective-C 2.6%
Java 1.8%
Other 1.3%