I see the problem: you don't use undocumented call prim_inet:async_accept and thus you can't catch message in acceptor, that something has changed. It really cannot be changed, unless proper undocumented feature is used here =(