Many of the modules in the server currently block on I/O operations.

In FreeRADIUS v4.0.x the server has been designed around non-blocking worker threads.

All modules that perform blocking I/O must be modified to work with the unlang stack (yielding when about to block), or be modified to indicate that they may block (maybe a flag?), with that indication being used to transfer the request to a sacrificial I/O thread.