I am testing the current version 2.3.0 and in the server logs I get a lot:

WARNING Client has NOT closed socket first.

We are not using the web gui and I guess that you progammed the afrender to correctly close the socket. I have tried setting the option for SO_REUSEADDR to 1 according to https://stackoverflow.com/questions/106 ... c#10651048, but it did not help. Maybe you have another idea. I do not get the message when using "epoll". Is the epoll mode stable/better/tested ?

"WARNING" just warns that client has not closed socket first in your pipeline.
It can be a problem on a huge amount of such clients.
But if you have several web browsers and may be some in-house tools, that communicates with afserver and can hold connection until afserver closes socket, it is not a problem.
You can always check whether your have a problem with it:https://github.com/CGRU/cgru/blob/maste ... ng.cpp#L35

At work we are using EPOLL since it was implemented (2.2.3 2017.11.02). So i think that it is tested.
But "threaded&blocking" i/o is much more tested as it was from the beginning.
I think that non-blocking should be more effective on a huge amount of clients or networking with delays (not a local network). But it was not tested on such cases too.