317 Commits

Author SHA1 Message Date
Bert Belder
c3506ab046
error: remove unnecessary include from error.h 2018-05-03 14:40:51 +02:00
Bert Belder
3315e2fb1b
sock: remove unnecessary forward declaration of poll_req_t 2018-05-03 14:40:51 +02:00
Bert Belder
578f056670
src: rename 'reflock-tree' to 'thread-safe-tree' 2018-05-02 19:21:20 +02:00
Bert Belder
1714c32f13
afd: small fixes 2018-05-02 19:04:29 +02:00
Bert Belder
ed63069469
tree: make macros not look like functions 2018-05-02 19:04:04 +02:00
Bert Belder
5bcde85f8b
sock: call poll_group_acquire() and poll_group_release() directly 2018-05-02 03:50:42 +02:00
Bert Belder
c07cc8f7cc
poll-group: do away with the poll_group_allocator class 2018-05-02 03:50:42 +02:00
Bert Belder
dfeefa8780
error: remove error mapping for ERROR_DEVICE_FEATURE_NOT_SUPPORTED 2018-05-02 03:36:23 +02:00
Bert Belder
6a932e0daf
sock: rename 'afd_socket' to 'base_socket' 2018-05-02 03:06:35 +02:00
Bert Belder
607ed77216
sock: do not retrieve winsock protocol info for every socket 2018-05-02 03:06:35 +02:00
Bert Belder
a54e813d2f
sock: remove unnecessary header include 2018-05-02 03:06:35 +02:00
Bert Belder
2789bad793
afd: retrieve protocol info for afd driver socket on startup 2018-05-02 03:06:30 +02:00
Bert Belder
c69f361564
ws: move ws_get_base_socket() from afd.c to ws.c 2018-05-02 02:12:57 +02:00
Bert Belder
ba343a0898
afd: move afd provider guid list from header to c file 2018-05-01 23:57:54 +02:00
Bert Belder
de68d70f9c
port: fix unlikely bug in _ep_port_wait() time-out behavior 2018-05-01 22:44:32 +02:00
Bert Belder
9d61ddfddb
reflock: remove _sync_sub_and_fetch() 2018-05-01 22:11:13 +02:00
Bert Belder
06342920d6
tree: reduce code duplication 2018-05-01 22:02:45 +02:00
Bert Belder
e7e8385354
port: do not use separate poll groups for different socket types
It appears that this was never necessary after all.
2018-03-09 01:12:24 +01:00
Bert Belder
075e1cef0b
port: remove useless and ineffective locking from ep_port_delete() 2018-03-09 00:42:35 +01:00
Bert Belder
47497ee19d
ws: report the correct error when WSAStartup() fails 2018-03-09 00:42:30 +01:00
Bert Belder
002c7f0899
src: add ws.c and ws.h for winsock-related stuff 2018-03-09 00:42:26 +01:00
Bert Belder
7dc6890500
tree: remove header-based red-black tree implementation 2018-02-12 01:40:07 +01:00
Bert Belder
9799eec661
tree: implement simpler version without macros 2018-02-12 01:40:07 +01:00
Bert Belder
2af6b901ba util: define static_assert even if clang pretends to be msvc 2017-12-10 05:51:48 +01:00
Bert Belder
d8cf151f30 port: change some internal method names 2017-12-09 23:28:23 +01:00
Bert Belder
b7ab093531 util: fix typo in _SSIZE_T_DEFINED 2017-12-09 23:28:23 +01:00
Bert Belder
206dff3f6a util: don't redefine static_assert if it's already defined 2017-12-09 23:28:19 +01:00
Bert Belder
ac0f54621b util: enable polyfills for gcc 2017-12-08 19:41:40 +01:00
Bert Belder
e10424bf58 win: polyfill ERROR_DEVICE_FEATURE_NOT_SUPPORTED definition for MinGW 2017-12-08 19:41:40 +01:00
Bert Belder
1a2743cf5e win: gcc doesn't grok #pragma warning 2017-12-08 19:41:40 +01:00
Bert Belder
1ef60cb893 win: ensure definitions for Vista or later are included 2017-12-08 19:41:40 +01:00
Bert Belder
a2eeaa5f82 src: move variable declarations to top of block 2017-12-08 19:34:52 +01:00
Bert Belder
2b57c726c8 util: move 'unused_fn' macro to from rb.h to util.h 2017-12-08 19:34:52 +01:00
Bert Belder
1ad34ec3f3 util: rename 'unused' macro to 'unused_var' 2017-12-08 19:34:52 +01:00
Bert Belder
05c384b181 src: rename WEPOLL_INTERNAL_EXTERN to WEPOLL_INTERNAL_VAR 2017-12-08 19:34:52 +01:00
Bert Belder
d84e928508 win: add missing comment after final #endif 2017-12-08 19:34:51 +01:00
Bert Belder
d26c10f852 nt: remove unnecessary '#ifdef _NTDEF_' condition 2017-12-08 19:34:51 +01:00
Bert Belder
7dcc3d5eab error: remove return_handle_error() and helpers 2017-12-07 22:06:11 +01:00
Bert Belder
0f68b70114 api: explicitly check handle validity in epoll_wait() 2017-12-07 22:04:17 +01:00
Bert Belder
093e6f5240 api: explicitly check handle validity in epoll_close() 2017-12-07 22:03:45 +01:00
Bert Belder
157cadf4e4 api: always check handle validity when epoll_ctl_mod() fails 2017-12-07 22:00:11 +01:00
Bert Belder
d448bdf8d8 error: make err_check_handle() an internal api 2017-12-07 21:37:58 +01:00
Bert Belder
097e4fef9a port: epoll_ctl() to report EBADF when both op and sock are invalid 2017-12-07 19:07:01 +01:00
Bert Belder
b5864f3a0f afd: report EPERM+ERROR_DEVICE_FEATURE_NOT_SUPPORTED for non-afd sockets 2017-12-07 18:01:49 +01:00
Bert Belder
42ccc11634 src: suppress warnings caused by Windows SDK headers 2017-12-07 04:42:37 +01:00
Bert Belder
99ce867424 src: polyfill the 'include' keyword for Visual Studio 2013 2017-12-07 04:41:51 +01:00
Bert Belder
f260365c45 port: plug memory leak where deleted socket would never be freed 2017-12-05 20:04:41 +01:00
Bert Belder
05bad1e58b sock: move poll cancellation to _ep_sock_cancel_poll() 2017-12-05 20:04:41 +01:00
Bert Belder
eecfb0e5e3 port: make ep_port_release_poll_group() signature consistent 2017-12-05 20:04:41 +01:00
Bert Belder
50f84cdc6b port: refactor socket update queue 2017-12-05 20:04:35 +01:00
Bert Belder
e5a8d83c8b api: epoll_ctl() to return ENOTSOCK when sock argument is not a socket 2017-12-05 05:02:57 +01:00
Bert Belder
4159a14364 afd: make afd_get_protocol() error reporting more accurate 2017-12-05 04:47:59 +01:00
Bert Belder
283aa5fe76 error: map ERROR_NOT_SUPPORTED to EPERM 2017-12-05 04:46:30 +01:00
Bert Belder
a2f6609d57 api: report EINVAL if epoll_wait() is called with invalid maxevents 2017-12-04 23:21:39 +01:00
Bert Belder
11d7a0395f api: report EINVAL when ephnd is a valid handle but not an epoll instance 2017-12-04 21:04:58 +01:00
Bert Belder
d5b5b605c0 api: epoll_ctl_mod() report EBADF when modifying/deleting invalid socket 2017-12-04 21:03:59 +01:00
Bert Belder
d83871797c error: add return_handle_error(value, handle, [error]) macro
This macro validates that `handle` is valid. If `handle` is valid, it
behaves just like `return_error(value, [error])`. If `handle` is
invalid, it sets errno to EBADF and GetLastError() returns
ERROR_INVALID_HANDLE.
2017-12-04 21:00:44 +01:00
Bert Belder
dc1369886d error: map ERROR_*_SYSTEM_RESOURCES to ENOMEM 2017-12-04 20:06:39 +01:00
Bert Belder
69a297fd22 port: properly propagate CreateIoCompletionPort() error 2017-12-04 20:06:16 +01:00
Bert Belder
981b3caf4e api: epoll_create() and epoll_create1() should return NULL on failure 2017-12-04 20:04:30 +01:00
Bert Belder
49f73f6723 sock: list out known epoll event types 2017-12-03 23:13:01 +01:00
Bert Belder
f7e15f1ba8 reflock-tree: remove unnecessary casts 2017-12-03 19:09:32 +01:00
Bert Belder
b3335d9c19 src: remove unnecessary #ifndef from regular/internal.h 2017-12-03 19:01:03 +01:00
Bert Belder
63d3e3b2bc src: merge ntstatus.h into nt.h 2017-12-03 18:58:43 +01:00
Bert Belder
ddb8bfc9d6 sock: properly detect closed sockets when EPOLLONESHOT is set 2017-12-03 18:15:22 +01:00
Bert Belder
c4756004e0 build: rename 'all-in-one' to 'combined', store in 'dist/' 2017-11-30 23:33:45 +01:00
Bert Belder
f5f606e8b9 src: remove unnecessary wpoll.h includes 2017-11-24 18:07:05 +01:00
Bert Belder
e55a7612b7 sock: disable all events after EPOLLONESHOT event 2017-11-23 03:00:26 +01:00
Bert Belder
2a7c6ded9e sock: set the right epoll events on AFD_POLL_DISCONNECT 2017-11-23 03:00:21 +01:00
Bert Belder
742cc8c7fa sock: merge if branches for AFD_POLL_SEND and AFD_POLL_CONNECT 2017-11-23 03:00:21 +01:00
Bert Belder
0e767efc0b nt: remove STATUS_SEVERITY_* definitions 2017-11-21 17:10:10 +01:00
Bert Belder
a9aec85220 src: have separate internal.h for regular vs all-in-one build 2017-11-21 15:58:19 +01:00
Bert Belder
2fc0bafb49 src: rename preprocessor constants 2017-11-21 15:04:37 +01:00
Bert Belder
eb673e3fed all: rename the project to 'wepoll' 2017-09-28 00:12:20 +02:00
Bert Belder
955ca5d222 error: remove dead code from _return_error_helper() 2017-09-27 17:13:59 +02:00
Bert Belder
4eb7441254 error.h: place macros above function declarations 2017-09-27 17:13:59 +02:00
Bert Belder
01c82b9364 error: prefix internal APIs with 'err_' rather than 'we_' 2017-09-27 17:13:59 +02:00
Bert Belder
347ad5399e error: shrink the error-to-errno map 2017-09-27 17:13:54 +02:00
Bert Belder
aad7c9151e afd: use RtlNtStatusToDosError to map NTSTATUS to error code 2017-09-27 17:05:34 +02:00
Bert Belder
8188c3df79 ntstatus: remove some unused definitions 2017-09-26 21:20:03 +02:00
Bert Belder
20e76abf32 nt: declarators -> attributes 2017-09-26 21:18:42 +02:00
Bert Belder
e3dda41f53 util: consistent naming 2017-09-26 21:14:44 +02:00
Bert Belder
d99e748ef8 sock: remove ep_sock_from_overlapped() internal API 2017-09-26 21:12:28 +02:00
Bert Belder
ba8823ad87 init: make global initialization thread-safe 2017-09-26 02:14:53 +02:00
Bert Belder
3642064c17 util: reorder the flavors of container_of 2017-09-26 02:14:53 +02:00
Bert Belder
809a6d84bf sock: remove ep_sock_find_in_tree() internal api 2017-09-26 02:14:53 +02:00
Bert Belder
3151f51417 port: improve _ep_port_feed_events() readability 2017-09-26 02:14:53 +02:00
Bert Belder
9a3952cdfb port: bump max completions that may be received from an IOCP port 2017-09-26 02:14:53 +02:00
Bert Belder
7b43e9c9f0 tree: don't set error on failure, this is the caller's responsibility 2017-09-25 20:35:48 +02:00
Bert Belder
562bf271df src: name header guard #defines consistently 2017-09-25 20:35:47 +02:00
Bert Belder
b61fd61008 src: rename epoll-socket.* to sock.* 2017-09-25 20:35:47 +02:00
Bert Belder
fa10bfc829 api: move epoll_xxx functions to api.c 2017-09-25 20:35:41 +02:00
Bert Belder
4ea40313be epoll: epoll_create(1) to match linux API more closely 2017-09-25 19:54:20 +02:00
Bert Belder
929ea10ebd port: immediately update poll set when other threads are polling 2017-09-25 19:42:01 +02:00
Bert Belder
729fa3c733 port: move IOCP port creation to ep_port_new() 2017-09-25 19:32:13 +02:00
Bert Belder
a6c2c49071 port: make ep_port_ctl() thread-safe 2017-09-25 19:26:40 +02:00
Bert Belder
851a5d7346 port: move ep_port_ctl() to port.c 2017-09-25 19:25:30 +02:00
Bert Belder
e37f4b2ccb port: make ep_port_wait() thread-safe 2017-09-25 19:18:13 +02:00
Bert Belder
d3a69678cf port: move ep_port_wait() to port.c 2017-09-25 19:17:58 +02:00
Bert Belder
d285bcfab7 epoll: break up _ep_wait() into two functions 2017-09-25 19:12:04 +02:00