|
@@ -107,13 +107,15 @@ static int getcurrentline (CallInfo *ci) {
|
|
|
|
|
|
|
|
|
/*
|
|
|
-** This function can be called asynchronously (e.g. during a signal),
|
|
|
-** under "reasonable" assumptions. A new 'ci' is completely linked
|
|
|
-** in the list before it becomes part of the "active" list, and
|
|
|
-** we assume that pointers are atomic (see comment in next function).
|
|
|
-** (If we traverse one more item, there is no problem. If we traverse
|
|
|
-** one less item, the worst that can happen is that the signal will
|
|
|
-** not interrupt the script.)
|
|
|
+** Set 'trap' for all active Lua frames.
|
|
|
+** This function can be called during a signal, under "reasonable"
|
|
|
+** assumptions. A new 'ci' is completely linked in the list before it
|
|
|
+** becomes part of the "active" list, and we assume that pointers are
|
|
|
+** atomic; see comment in next function.
|
|
|
+** (A compiler doing interprocedural optimizations could, theoretically,
|
|
|
+** reorder memory writes in such a way that the list could be
|
|
|
+** temporarily broken while inserting a new element. We simply assume it
|
|
|
+** has no good reasons to do that.)
|
|
|
*/
|
|
|
static void settraps (CallInfo *ci) {
|
|
|
for (; ci != NULL; ci = ci->previous)
|
|
@@ -123,8 +125,8 @@ static void settraps (CallInfo *ci) {
|
|
|
|
|
|
|
|
|
/*
|
|
|
-** This function can be called asynchronously (e.g. during a signal),
|
|
|
-** under "reasonable" assumptions.
|
|
|
+** This function can be called during a signal, under "reasonable"
|
|
|
+** assumptions.
|
|
|
** Fields 'oldpc', 'basehookcount', and 'hookcount' (set by
|
|
|
** 'resethookcount') are for debug only, and it is no problem if they
|
|
|
** get arbitrary values (causes at most one wrong hook call). 'hookmask'
|