updating the asynchronous communication to check and post buffers before sending to avoid locking