Commit Graph

15 Commits

Author SHA1 Message Date
Bernhard Miklautz
b817e92e5e cmake: mark required libraries for export 2014-04-23 10:16:02 +02:00
Bernhard Miklautz
2b6b4a6685 updated file headers 2013-12-04 11:44:22 +01:00
Marc-André Moreau
55565e056c freerdp: export targets 2013-10-28 23:06:39 -04:00
Marc-André Moreau
5fb65101e9 libwinpr-nt: make test successfully call NtCreateFile on Windows 2013-10-23 19:32:32 -04:00
Marc-André Moreau
e2fe00fd37 libwinpr-nt: load and make use of original Rtl* functions on Windows 2013-10-23 18:57:41 -04:00
Marc-André Moreau
1de70aa064 libwinpr-nt: dynamically load original NtCreateFile functions on Windows, extend tests 2013-10-23 18:15:10 -04:00
Marc-André Moreau
ebc096f2b2 libwinpr-nt: fix conflict for NtCreateFile on Windows 2013-10-22 21:38:16 -04:00
Marc-André Moreau
888812eaa0 libwinpr-nt: stub more of the native file API 2013-10-22 20:47:29 -04:00
Norbert Federa
6f9a8dbc1e winpr: greatly improved NtCurrentTeb performance
Use pthread_setspecific/pthread_getspecific to store/retrieve the thread
environment block (TEB). Use pthread_once to trigger the creation of that
data from within NtCurrentTeb.
This allows us to get rid of the process environment block stuff which
was only used to provide serialized access to a thread table in order to
retrieve the TEB.

NtCurrentTeb is currently only as a per-thread storage location for the
last error value used by SetLastError and GetLastError.

Also made the TestErrorSetLastError CTest a bit more demanding.
It makes sure the 4 threads run for at least 2 seconds.
Each thread constantly calls SetLastError with a random value and checks
if GetLastError returns the same value again. The total amount of
these iterations is calculated in order to measure the performance.

This change increases the NtCurrentTeb performance by roughly 50% on
linux and by several thousand percent (yes) on Mac OS X.

Thanks for watching.
2013-10-11 19:34:23 +02:00
Marc-André Moreau
e8a8c1cf7f winpr: fix crashing tests 2013-09-19 14:17:00 -04:00
Marc-André Moreau
0c17eb1a23 winpr: fix unit tests on Windows 2013-09-19 13:50:00 -04:00
Marc-André Moreau
8f1aceac6a libwinpr-nt: add missing link dependency 2013-09-16 17:49:16 -04:00
Marc-André Moreau
c1625c1ead libwinpr-wtsapi: start implementation, extend NtApi 2013-08-22 19:20:59 -04:00
Marc-André Moreau
d5679889f3 libwinpr-nt: start implementing core NTDLL functions 2013-08-22 13:30:44 -04:00
Marc-André Moreau
68ec10a9d9 libwinpr-nt: implement NtCurrentTeb() 2013-08-22 10:18:38 -04:00