As far as I know, in the prefork model, a single child process (no threads) handles each input request. So I am assuming the response is sent after the chid process finishes processing the request. Also, the child process sets its state as idle in a scoreboard as and when it finishes processing...