FreeRDP/winpr/libwinpr/synch
Norbert Federa 434ac77b83 libwinpr-sync: New complete critical section code
- Complete implementation including recursion support
- Added an intensive ctest (TestSynchCritical)
- Struct members are used exactly as Windows does it internally:
  LockCount starts at -1, RecursionCount at 0
- Same performance optimizations as internally on Windows:
    - Fast lock acquisition path using CAS -> SpinCount -> wait
    - SpinCount automatically disabled on uniprocessor systems
- On Linux SpinCount is disabled because it provided no advantage over NPTL/futex in all tests

Support for CRITICAL_SECTION's DebugInfo is not yet included (but trivial to add).
(cherry picked from commit 2b25b4a520)
2013-08-26 15:27:15 +02:00
..
test libwinpr-sync: New complete critical section code 2013-08-26 15:27:15 +02:00
address.c libwinpr-synch: implemented Win32 Events 2012-09-18 18:36:13 -04:00
barrier.c libwinpr-synch: implemented Win32 Events 2012-09-18 18:36:13 -04:00
CMakeLists.txt libwinpr-sync: New complete critical section code 2013-08-26 15:27:15 +02:00
condition.c libwinpr-synch: implemented Win32 Events 2012-09-18 18:36:13 -04:00
critical.c libwinpr-sync: New complete critical section code 2013-08-26 15:27:15 +02:00
event.c libwinpr-synch: remove unnecessary critical section 2013-05-16 19:27:12 -04:00
init.c libwinpr-synch: fix race condition in event handling 2012-12-03 14:57:15 -05:00
ModuleOptions.cmake libwinpr: add module definition files 2012-09-21 13:02:54 -04:00
mutex.c libwinpr-handle: reduce usage of unneeded handle management functions 2013-05-16 18:27:26 -04:00
semaphore.c libwinpr-handle: reduce usage of unneeded handle management functions 2013-05-16 18:27:26 -04:00
sleep.c libwinpr-synch: fix broken USleep (on WIN32) 2013-06-25 16:33:40 +02:00
srw.c libwinpr-synch: implemented Win32 Events 2012-09-18 18:36:13 -04:00
synch.c winpr: fix build on Windows 2012-10-03 17:53:03 -04:00
synch.h winpr: unify handle types 2013-05-16 17:32:58 -04:00
timer.c libwinpr-synch: implemented Win32 Events 2012-09-18 18:36:13 -04:00
wait.c FreeRDP: 2013-07-04 14:42:40 -04:00