Commit Graph

109 Commits

Author SHA1 Message Date
Hardening
19fb713b83 Handle EINTR nicely
When we caught an EINTR during a select we should retry instead of returning an error
2014-01-07 16:36:41 +01:00
Marc-André Moreau
05947dd0b2 libfreerdp-core: fix linux build 2013-12-18 22:02:59 -05:00
Benoît LeBlanc
043b834ac2 Fixed WaitForSingleObject and WaitForMultipleObjects (timeouts incorrectly sets). Added detailed error reporting, better timeout error handling. 2013-12-17 18:21:12 -05:00
Benoît LeBlanc
f4a0216c76 Fixed WaitForSingleObject and WaitForMultipleObjects (timeouts incorrectly sets). Added detailed error reporting, better timeout error handling. 2013-12-17 18:20:33 -05:00
Marc-André Moreau
62199fc46a Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-12-10 11:54:03 -05:00
Bernhard Miklautz
2b6b4a6685 updated file headers 2013-12-04 11:44:22 +01:00
Benoît LeBlanc
13322f5ba2 Removed warning 2013-11-18 11:59:53 -05:00
Bernhard Miklautz
916f2d2dbf winpr: fixed build warnings
* moved pthread_tryjoin_np to toplevel CMakeLists.txt
* removed duplicated -DHAVE_PTHREAD_GNU_EXT
2013-11-15 16:04:04 +01:00
Armin Novak
fbc1acd70e Fixed includes and test function naming. 2013-11-15 11:43:01 +01:00
Armin Novak
5dbd94e2a3 Added unit tests for thread and mutex. 2013-11-15 11:38:59 +01:00
Armin Novak
efd2d833c2 Extended test, now also checks, if lock / unlock is working. 2013-11-15 08:38:59 +01:00
Armin Novak
e17a4d1f26 Using CLOCK_MONOTONIC instead of CLOCK_REALTIME now.
Fixed timeout comparison for systems missing GNU posix extensions.
2013-11-14 13:48:20 +01:00
Armin Novak
719c1a27d6 Fixed broken timed wait for thread and mutex objects in WaitForSingleObject. 2013-11-14 09:34:16 +01:00
Marc-André Moreau
55565e056c freerdp: export targets 2013-10-28 23:06:39 -04:00
Marc-André Moreau
89d45690c6 libwinpr-synch: don't use timed waits on OS X until they are properly ported 2013-10-25 10:48:37 -04:00
Marc-André Moreau
723e423799 libwinpr-synch: fix build on Mac OS X 2013-10-25 10:03:57 -04:00
Marc-André Moreau
d30f66b1b7 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-10-23 14:18:40 -04:00
Armin Novak
2ba55a48f8 Added missing variable declaration. 2013-10-23 12:25:04 +02:00
Armin Novak
17a024dcd1 Returing WAIT_TIMEOUT for MUTEX objects now too. 2013-10-23 12:16:23 +02:00
Armin Novak
c1051fe4c6 Always including <errno.h> now. 2013-10-23 12:13:53 +02:00
Armin Novak
7704788474 Implemented fallback functions for pthread_timedjoin_np and
pthread_mutex_timedlock functions for systems without PTHREAD_GNU_EXT
Now returning WAIT_TIMEOUT if the operation timed out.
2013-10-23 12:09:09 +02:00
Marc-André Moreau
0276b095eb Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-10-17 13:08:30 -04:00
Bernhard Miklautz
e6f3cd7dff build: link winpr-synch against winpr-sysinfo 2013-10-05 14:09:04 +02:00
Marc-André Moreau
f4e98f29ec libwinpr-pipe: add server-side named pipe waiting 2013-09-25 19:13:39 -04:00
Marc-André Moreau
3d2754e8ed libwinpr-environment: implement required functions for CreateProcess 2013-09-23 14:44:59 -04:00
Marc-André Moreau
8d142eb85f libwinpr-thread: initial CreateProcess() implementation 2013-09-22 17:23:00 -04: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
518995a05e freerdp: merge with master 2013-09-16 17:10:27 -04:00
Marc-André Moreau
4fbebba528 libwinpr-wait: add support for waiting on named pipes (non-standard) 2013-09-11 19:00:32 -04:00
Bernhard Miklautz
8c796e9afc winpr/synch: link against librt 2013-09-10 10:38:23 +02:00
Armin Novak
62356e667c Fixed erroneous patch. 2013-09-05 12:14:34 +02:00
Armin Novak
a3b531c036 Fixed issues found with clang-analyzer 2013-09-05 12:14:33 +02:00
Armin Novak
1e2455fa4a Fixed various memory leaks and compiler warnings. 2013-09-05 12:14:33 +02:00
Armin Novak
629ac4ad28 Fixed coverity issue 1047588 2013-09-05 12:14:33 +02:00
Armin Novak
04e9338668 Fixed coverity issue 1047595 2013-09-05 12:14:32 +02:00
Armin Novak
0c08b584b8 Fixed coverity issue 1047596 2013-09-05 12:14:32 +02:00
Armin Novak
2f20a8c12b Fixed various memory leaks and resource deallocation problems. 2013-08-19 17:44:52 +02:00
Armin Novak
1a3a6c3e0f Fixed check for _GNU_SOURCE pthread extensions. 2013-08-16 11:49:35 +02:00
Marc-André Moreau
1d3cf89cbc libwinpr-synch: fix wait.c build on Mac OS X 2013-08-15 15:02:24 -04:00
Armin Novak
86fd873907 Added error messages for not implemented functions. 2013-08-14 13:19:57 +02:00
Armin Novak
0752597e00 Thread timed join now only available with _GUN_SOURCE. 2013-08-14 13:18:18 +02:00
Armin Novak
c3e847f472 Implemented timeouts for WaitForSingleObject.
Added assertions for functions not implemented.
2013-08-14 13:18:18 +02:00
Marc-André Moreau
34f9985add freerdp: merge with master 2013-08-07 15:48:57 -04:00
Norbert Federa
2b25b4a520 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).
2013-08-07 10:20:04 +02:00
Marc-André Moreau
7b80b19306 cmake: add FindPixman.cmake 2013-08-05 20:50:23 -04:00
Marc-André Moreau
190ed85a3d libwinpr-synch: add detection of timerfd support 2013-08-03 19:50:17 -04:00
Marc-André Moreau
ecc543d87d Merge branch 'master' of github.com:FreeRDP/FreeRDP into multitouch 2013-08-03 16:22:09 -04:00
Norbert Federa
81ef251fc8 winpr: improve and fix locking for data structures
- Improved/completed(almost) winpr's critical section implementation
- Replaced WaitForSingleObject locking with critical sections

Note:
WaitForSingleObject should _never_ be used for granular low-contention
locks as it _always_ enters the kernel.

Just replacing WaitForSingleObject locking in Bufferpool with
EnterCriticalSection boosts the multithreaded rfx decoder
performance by almost 400% on win32.
2013-08-02 12:07:05 +02:00
Marc-André Moreau
4d2bc6ba46 libwinpr-synch: add unit tests, initial waitable timer support 2013-07-29 13:07:39 -04:00