Process model
=============
-Each process is made of 3 threads: a receiver thread, a computing
-thread, and a load-balancer thread.
+Each process is made of 3 threads: a receiving thread, a computing
+thread, and a load-balancing thread.
-* Receiver thread
- ---------------
+* Receiving thread
+ ----------------
Loop
| wait for a message to come, either on data channel, or on ctrl channel
---------------------
Loop
+ | receive ctrl messages
| call load-balancing algorithm
| send ctrl messages
| sleep (min_lb_iter_duration)
- | receive ctrl messages
+-
send CLOSE on ctrl for all neighbors
wait for CLOSE on ctrl from all neighbors
diffusing to neighbors.
* Without bookkeeping, it equals real_load
minus pending sends.
- * With bookkeeping, it corresponds to the "virtual
- load".
+ * With bookkeeping, it corresponds to the
+ "virtual load".
+
+process::received_load Real load received from neighbors.
+ Used when receiveing data messages, and then
+ added to real_load.