MEDIUM: lua: "com" signals
This system permits to send signals between lua tasks. A main lua stack can
register the signal in a coprocess. When the coprocess finish his job, it
send a signal, and the associated task is wakes. If the main lua execution
stack stop (with or without errors), the list or pending signals is purged.
diff --git a/include/types/hlua.h b/include/types/hlua.h
index 85d7e81..cfeb767 100644
--- a/include/types/hlua.h
+++ b/include/types/hlua.h
@@ -27,7 +27,16 @@
enum hlua_state state; /* The current execution state. */
struct task *task; /* The task associated with the lua stack execution.
We must wake this task to continue the task execution */
+ struct list com; /* The list head of the signals attached to this task. */
struct ebpt_node node;
};
+struct hlua_com {
+ struct list purge_me; /* Part of the list of signals to be purged in the
+ case of the LUA execution stack crash. */
+ struct list wake_me; /* Part of list of signals to be targeted if an
+ event occurs. */
+ struct task *task; /* The task to be wake if an event occurs. */
+};
+
#endif /* _TYPES_HLUA_H */