-/* ******************************* */
-/* contexts manipulation functions */
-/* ******************************* */
+/* ****************************** */
+/* context manipulation functions */
+/* ****************************** */
+
+/* Scenario for the end of a context:
+ *
+ * CASE 1: death after end of the main function
+ * the context_wrapper, called internally by the context module, calls
+ * SIMIX_context_stop after user code stops, smx_context_stop calls user
+ * cleanup_func if any (in context settings), add current process to trashbin
+ * and yields back to maestro.
+ * From time to time, maestro calls SIMIX_context_empty_trash, which destroy
+ * all the process and context data structures, and frees the memory
+ *
+ * CASE 2: brutal death
+ * SIMIX_process_kill (from any process) set process->iwannadie = 1 and then
+ * schedules the process. Then the process is awaken in the middle of the
+ * SIMIX_process_yield function, and at the end of it, it checks that
+ * iwannadie == 1, and call SIMIX_context_stop(same than first case afterward)
+ */