jimenezrick/gen_tcpd — comment on commit 47d21108e6252679969e7d6f087ac8c81e004e5a
File:  line 0
By oscarh:

Well, actually I think it's because of the process layout.

The handle_call is dealt with by the gen_server spawned by start_link. The acceptor processes are then initialised with the CState returned by Mod:init/1. If the Client state is updated in the gen_server process, it still won't be updated in the acceptor processes, which will make it inconsistent. If you want to do this you'd need to retrieve the state from the gen_server each time a new acceptor is spawned, but then the gen_server process will become a bottleneck.