The buffer is really about making this outer timeout a last ditch catch all and letting the port trigger the timeout rather than having them race. This may be what you meant by inter-process communication. No need to change.