Marc-André Moreau
3616b19290
libwinpr-synch: make use of timespec for timer queue
2014-01-26 20:39:13 -05:00
Marc-André Moreau
2e45ad143f
libwinpr-synch: improve timer queue implementation
2014-01-26 17:21:12 -05:00
Marc-André Moreau
656766ca2e
libwinpr-synch: start implementing timer queue
2014-01-26 12:37:38 -05:00
Marc-André Moreau
d5fcd78b65
libwinpr-synch: fix build on OS X
2014-01-26 00:06:27 -05:00
Marc-André Moreau
d2405a25f8
libwinpr-synch: initial waitable timer asynchronous procedure callback support
2014-01-24 22:44:23 -05:00
Marc-André Moreau
9a4fb396da
libwinpr-synch: add unit test for waitable timer asynchronous procedure calls
2014-01-24 18:08:06 -05:00
Marc-André Moreau
fab0cd2779
libwinpr-synch: stub timer queues
2014-01-24 17:48:55 -05:00
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
Marc-André Moreau
007bd87ff4
libwinpr-synch: start implementing waitable timers
2013-07-29 11:57:29 -04:00
Marc-André Moreau
8a4e83bdfb
libfreerdp-core: fix server-side update encoding edge case
2013-07-28 16:31:38 -04:00
Benoît LeBlanc
c17c2f811b
FreeRDP:
...
- replaced char* by const char* in function prototypes
- MacFreeRDP: moved assignation of context function pointers
- freerdp: added more pointer and return value validations to prevent crashes
2013-07-04 14:42:40 -04:00
Norbert Federa
786df03bb6
libwinpr-synch: fix broken USleep (on WIN32)
...
Also reduce CPU usage by reducing the max busy-looping time to 1ms
2013-06-25 16:33:40 +02:00
Marc-André Moreau
8a2220a3d9
libwinpr-synch: remove unnecessary critical section
2013-05-16 19:27:12 -04:00
Marc-André Moreau
c0160b8015
libwinpr-handle: reduce usage of unneeded handle management functions
2013-05-16 18:27:26 -04:00
Marc-André Moreau
72e9087d1f
winpr: unify handle types
2013-05-16 17:32:58 -04:00
Marc-André Moreau
e88b59c32c
libfreerdp-core: improve async-transport mode
2013-04-30 17:16:38 -04:00
Marc-André Moreau
0cbdd6b641
freerdp: merge with master
2013-04-09 10:18:03 -04:00
Bernhard Miklautz
aea81fb5c8
winpr/mutex: Support for bInitialOwner in CreateMutex
2013-04-03 19:35:45 +02:00
Marc-André Moreau
022ceec22a
xfreerdp: split client into executable and library
2013-04-02 16:22:30 -04:00
Marc-André Moreau
d13f89d359
xfreerdp: modify way to return thread exit code
2013-04-02 14:51:12 -04:00
Hardening
7701c9d934
Replace printf(...) by fprintf(stderr, ...)
2013-03-28 23:06:34 +01:00
Marc-André Moreau
8b9ea43d78
libfreerdp-core: fix locking with TS Gateway
2013-03-27 20:06:10 -04:00
Marc-André Moreau
882c914e6c
channels/tsmf: fix build
2013-03-21 14:45:03 -04:00
Bernhard Miklautz
77df254265
Fixed some build warnings
2013-03-15 18:22:49 +01:00
Marc-André Moreau
47a7d54370
xfreerdp: stabilize asynchronous X11 event handling
2013-02-11 20:38:19 -05:00
Marc-André Moreau
4269ac5c14
xfreerdp: improve asynchronicity
2013-02-09 17:13:53 -05:00
Marc-André Moreau
a00ac1f689
Merge pull request #949 from hardening/eventfd
...
Add support for eventfd
2013-02-02 13:30:33 -08:00
hardening
497041b44e
event: don't select then write when using eventfd, write directly
2013-02-01 00:47:44 +01:00
C-o-r-E
caa1032cce
Merge remote-tracking branch 'upstream/master'
2013-01-23 16:10:57 -05:00
hardening
f0d5e24979
Added preliminary support for eventfd
2013-01-23 21:59:01 +01:00
C-o-r-E
58e5034d5f
mfreerdp-server: replaced xnew/xzalloc calls
2013-01-23 12:54:09 -05:00
Marc-André Moreau
683e395bf8
Merge pull request #918 from awakecoding/master
...
RemoteFX Parallel Processing of Tiles
2013-01-22 19:03:06 -08:00
Marc-André Moreau
74bba0e767
libwinpr-pool: improve thread pool API on Linux
2013-01-22 16:19:32 -05:00
hardening
7b37f92b2b
WaitForMultipleObjects should conform to API and return WAIT_FAILED when nCount is 0
2013-01-22 21:58:06 +01:00
Marc-André Moreau
f2f1c641a3
libwinpr-synch: merge with master
2012-12-21 12:22:37 -05:00
Vic Lee
502368dd95
libwinpr-synch: proper handling fd event creation on Windows.
2012-12-21 11:41:18 +08:00
Marc-André Moreau
8c746976bb
libfreerdp-core: return proper event handles on Windows
2012-12-21 11:27:44 +08:00
Marc-André Moreau
05e6157d29
libfreerdp-core: return proper event handles on Windows
2012-12-19 12:16:39 -05:00
Marc-André Moreau
f9321045a4
Merge branch 'master' of github.com:FreeRDP/FreeRDP
2012-12-17 10:41:26 -05:00
Alam Arias
7b0f4ce1ea
libfreerdp-core: llvm said fd may not be set
2012-12-16 23:03:00 -05:00
Marc-André Moreau
6cdb09740c
wfreerdp: fix build
2012-12-14 13:11:07 -05:00
Marc-André Moreau
92bf3e4ae0
libfreerdp-utils: remove sleep utils in favor of WinPR
2012-12-14 00:58:48 -05:00
Marc-André Moreau
7ff2be09b2
libfreerdp-core: more TSG memory cleanup
2012-12-12 22:03:40 -05:00
Marc-André Moreau
d8fa43c526
libwinpr-synch: fix race condition in event handling
2012-12-03 14:57:15 -05:00
Marc-André Moreau
3936a19914
libfreerdp-core: add asynchronous send queue
2012-11-28 13:38:01 -05:00
Marc-André Moreau
d0792ea4d1
libwinpr-synch: implement pipe-based semaphore
2012-11-28 12:47:04 -05:00
Marc-André Moreau
68e7e077bb
libwinpr-synch: fix build on Windows
2012-11-26 20:34:36 -05:00
Marc-André Moreau
57d4a07af9
libfreerdp-utils: replace internal wait_obj implementation
2012-11-26 18:02:41 -05:00
Marc-André Moreau
e62860ab29
cmake: replace FindOptionalPackage macros with FindFeature macros
2012-11-02 19:27:01 -04:00
Marc-André Moreau
06fa85f31c
cmake: refactoring of MONOLITHIC_BUILD
2012-10-13 17:30:59 -04:00
Marc-André Moreau
40eea7c76b
cmake: rename WITH_MONOLITHIC_BUILD to MONOLITHIC_BUILD
2012-10-08 22:55:06 -04:00
Marc-André Moreau
9aa1217c4e
libwinpr-pipe: implement anonymous pipes
2012-10-07 20:25:50 -04:00
Marc-André Moreau
e828feccb7
cmake: organize solution folders
2012-10-04 09:42:23 -04:00
Marc-André Moreau
12554c172f
winpr: fix build on Windows
2012-10-03 17:53:03 -04:00
Marc-André Moreau
fcc9f91302
cmake: add support for solution groups
2012-09-30 22:58:59 -04:00
Marc-André Moreau
0df7bcf632
libwinpr-file: added CreateFile/DeleteFile
2012-09-26 16:25:23 -04:00
Marc-André Moreau
a11a69c70f
channels/rdpdr/disk: replace thread utils by WinPR thread API
2012-09-23 13:54:14 -04:00
Marc-André Moreau
7d7536f649
libwinpr: add module definition files
2012-09-21 13:02:54 -04:00
Marc-André Moreau
403d85f080
cmake: bump soname version to 1.1.0
2012-09-20 20:45:56 -04:00
Marc-André Moreau
9cc76d0b02
libwinpr-synch: fix compilation on Windows
2012-09-19 03:07:47 +02:00
Marc-André Moreau
ca6a37eed4
libwinpr-synch: implemented semaphores + thread wait
2012-09-18 19:24:03 -04:00
Marc-André Moreau
4bd217055c
libwinpr-synch: implemented Win32 Events
2012-09-18 18:36:13 -04:00
Marc-André Moreau
13dbbb9513
libfreerdp-utils: removing mutex util in favor of WinPR mutex API
2012-09-18 17:34:11 -04:00
Marc-André Moreau
78723f019f
libwinpr-synch: stubbed more
2012-09-18 15:51:33 -04:00
Marc-André Moreau
deec68be19
libwinpr-synch: stubbed larger portions of the Synchronization API
2012-09-18 12:57:19 -04:00
Marc-André Moreau
faa4311232
libwinpr: add proper config.h inclusions
2012-08-14 17:20:53 -04:00
Marc-André Moreau
384af1d93b
include: move winpr include directory inside winpr
2012-08-14 15:49:39 -04:00