Emil Muratov afa162b73a Coalesce poll events on queue eviction
Refer: https://github.com/mathieucarbou/ESPAsyncWebServer/discussions/165

Let's try to coalesce two (or more) consecutive poll events into one
this usually happens with poor implemented user-callbacks that are runs too long and makes poll events to stack in the queue
if consecutive user callback for a same connection runs longer that poll time then it will fill the queue with events until it deadlocks.
This is a workaround to mitigate such poor designs and won't let other events/connections to starve the task time.
It won't be effective if user would run multiple simultaneous long running callbacks due to message interleaving.
todo: implement some kind of fair dequeing or (better) simply punish user for a bad designed callbacks by resetting hog connections
2024-12-13 16:32:15 +09:00
2024-10-25 22:51:29 +02:00
2024-12-11 11:34:41 +01:00
2024-12-10 22:22:29 +01:00
2024-12-10 22:45:36 +01:00
2024-09-05 23:16:11 +02:00
2024-09-05 23:22:24 +02:00
2024-09-06 11:31:02 +02:00
2024-09-05 23:22:24 +02:00
2017-09-08 13:07:27 +03:00
2024-12-11 19:59:42 +01:00
2024-12-11 19:59:42 +01:00
2017-09-08 13:04:57 +03:00
2024-12-11 11:05:16 +01:00
2024-12-11 19:59:42 +01:00

AsyncTCP

License: LGPL 3.0 Continuous Integration PlatformIO Registry

A fork of the AsyncTCP library by @me-no-dev.

Async TCP Library for ESP32 Arduino

This is a fully asynchronous TCP library, aimed at enabling trouble-free, multi-connection network environment for Espressif's ESP32 MCUs.

This library is the base for ESPAsyncWebServer

AsyncClient and AsyncServer

The base classes on which everything else is built. They expose all possible scenarios, but are really raw and require more skills to use.

Changes in this fork

Coordinates

mathieucarbou/AsyncTCP @ ^3.2.15

Important recommendations

Most of the crashes are caused by improper configuration of the library for the project. Here are some recommendations to avoid them.

I personally use the following configuration in my projects:

  -D CONFIG_ASYNC_TCP_MAX_ACK_TIME=5000 // (keep default)
  -D CONFIG_ASYNC_TCP_PRIORITY=10 // (keep default)
  -D CONFIG_ASYNC_TCP_QUEUE_SIZE=64 // (keep default)
  -D CONFIG_ASYNC_TCP_RUNNING_CORE=1 // force async_tcp task to be on same core as the app (default is core 0)
  -D CONFIG_ASYNC_TCP_STACK_SIZE=4096 // reduce the stack size (default is 16K)
S
Description
Async TCP Library for ESP32
Readme 316 KiB
Languages
C++ 99.5%
CMake 0.4%
Makefile 0.1%