Ok, let's get started, I have a little confusion in my head.
SEND : it blocks. The sender waits until the receiver places the appropriate RECV.
SSEND : it is blocked, and the sender DOES NOT ONLY wait until the receiver outputs the corresponding RECV, but it will wait for RECV confirmation. This means that RECV is working properly.
BSEND : it is not blocking. A process can execute its part of the code. Data is stored in a buffer that has been correctly allocated previously.
ISEND : it is not blocked. A process can execute its part of the code. The data is NOT stored in the buffer: you should not overwrite the data you send until you are sure that ISEND is working properly (WAIT / TEST).
So, ISEND and BSEND differ only for the buffer?
source
share