I had to read again the Linda paper to better understand how it works.
Let's say we have one "server" that manages the tuple space and has a variable i. Multiple clients want to increment this variable, how should they do it?
It is actually quite simple: when a client wants to change i, it should first remove i from the tuple space, then performs his calculation and finally put i back in the tuple space, ready for other clients.
// the in statement will remove the index from the tuple space in("index", ? i) // the out statement puts back the index into the tuple space out("index", i + 1)
If multiple clients want to access i at the same time, the server pick one non-deterministically.
If a client wants to access i but none is available in the tuple space, the client will wait until i appears.
The true beauty of Linda is that parallel programming can easily be implemented in any language.