You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Evgeny
ce37db137b
uasync: замена timeout_heap на timing wheel (twheel)
Устранены баги потери событий:
- timeout_ms = -1 при истёкшем таймере (poll висел бесконечно)
- stale now_ms в process_timeouts (таймеры пропускались на одну итерацию)
Замена:
- timeout_heap.c/h удалены
- Добавлен twheel — tickless hierarchical timing wheel (WHEEL_BIT=6, WHEEL_NUM=4)
на основе реализации William Ahern (MIT), адаптирован под u_malloc/u_free/DEBUG_*
- struct timeout_node: struct twheel to первым полем, убран heap_index/expiration_ms
- uasync_set_timeout: twheel_init + twheels_add(TIMEOUT_ABS)
- uasync_cancel_timeout: twheels_del + немедленный free (O(1))
- process_timeouts: twheels_update + цикл twheels_get
- get_next_timeout: twheels_timeout() — всегда актуален
- uasync_poll: исправлена логика расчёта timeout_ms
|
4 months ago |
| .. |
|
Makefile.am
|
uasync: замена timeout_heap на timing wheel (twheel)
|
4 months ago |
|
debug_config.c
|
fix: move debug logs before async operations (queue_put, timer_set, resume) for meaningful log ordering
|
4 months ago |
|
debug_config.h
|
fix: move debug logs before async operations (queue_put, timer_set, resume) for meaningful log ordering
|
4 months ago |
|
getmyip.c
|
Replace buggy get_default_route_ip() with get_outgoing_local_ip() for reliable local IP detection
|
5 months ago |
|
getmyip.h
|
Fix getmyip.h Windows build: use winsock2.h instead of sys/socket.h
|
5 months ago |
|
ll_queue.c
|
feat: send_q backpressure + ll_queue on_get callback + consumer_ack flow control
|
4 months ago |
|
ll_queue.h
|
feat: send_q backpressure + ll_queue on_get callback + consumer_ack flow control
|
4 months ago |
|
mem.c
|
fix: proxy ERROR loop, BBR test backpressure, O(1) u_free, test ordering
|
4 months ago |
|
mem.h
|
Fix: use allocated_count from mem.c for busy memory calculation
|
5 months ago |
|
memory_pool.c
|
1
|
4 months ago |
|
memory_pool.h
|
memory_pool_is_freed + стратегические проверки на висячие указатели
|
4 months ago |
|
myip.c
|
Fix: Add bounds/mtu checks, underflow protection and null deref fix for ETCP robustness
|
5 months ago |
|
platform_compat.c
|
add IPv6 default route interface auto-detection for permanent/temporary IPv6 without netif
|
5 months ago |
|
platform_compat.h
|
add IPv6 default route interface auto-detection for permanent/temporary IPv6 without netif
|
5 months ago |
|
radix.c
|
add IPv6 default route interface auto-detection for permanent/temporary IPv6 without netif
|
5 months ago |
|
radix.h
|
add IPv6 default route interface auto-detection for permanent/temporary IPv6 without netif
|
5 months ago |
|
serialize.c
|
serializer
|
6 months ago |
|
serialize.h
|
serializer
|
6 months ago |
|
sha256.c
|
…
|
|
|
sha256.h
|
…
|
|
|
socket_compat.c
|
migrate NAT and DATA to etcp_router, fix warnings and destroy order
|
5 months ago |
|
socket_compat.h
|
migrate NAT and DATA to etcp_router, fix warnings and destroy order
|
5 months ago |
|
swm_min.c
|
…
|
|
|
swm_min.h
|
…
|
|
|
tcp_io.c
|
1
|
4 months ago |
|
tcp_io.h
|
1
|
4 months ago |
|
twheel.c
|
uasync: замена timeout_heap на timing wheel (twheel)
|
4 months ago |
|
twheel.h
|
uasync: замена timeout_heap на timing wheel (twheel)
|
4 months ago |
|
twheel_bitops.c
|
uasync: замена timeout_heap на timing wheel (twheel)
|
4 months ago |
|
u_async.c
|
uasync: замена timeout_heap на timing wheel (twheel)
|
4 months ago |
|
u_async.h
|
uasync: замена timeout_heap на timing wheel (twheel)
|
4 months ago |
|
wintun.dll
|
…
|
|
|
wintun.h
|
…
|
|