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