aboutsummaryrefslogtreecommitdiff
path: root/lstate.h
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2004-06-02 16:07:55 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2004-06-02 16:07:55 -0300
commite8d4fe72366dd44e45ffd9fca09d92c3db4f8214 (patch)
treed9f28bbce22a50c9e1de2f239ee6584934afb510 /lstate.h
parentb8691f13a8e3e9bb7fbd91d1f099eb517a9d5b35 (diff)
downloadlua-e8d4fe72366dd44e45ffd9fca09d92c3db4f8214.tar.gz
lua-e8d4fe72366dd44e45ffd9fca09d92c3db4f8214.tar.bz2
lua-e8d4fe72366dd44e45ffd9fca09d92c3db4f8214.zip
new macro `lua_threadyield' + lock stuff in `luaconf.h' + details
Diffstat (limited to 'lstate.h')
-rw-r--r--lstate.h37
1 files changed, 3 insertions, 34 deletions
diff --git a/lstate.h b/lstate.h
index 0ac69529..bec73a5b 100644
--- a/lstate.h
+++ b/lstate.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lstate.h,v 2.3 2004/05/14 19:25:09 roberto Exp roberto $ 2** $Id: lstate.h,v 2.4 2004/05/31 18:51:50 roberto Exp roberto $
3** Global State 3** Global State
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -14,30 +14,6 @@
14#include "lzio.h" 14#include "lzio.h"
15 15
16 16
17/*
18** macros for thread synchronization inside Lua core machine:
19** all accesses to the global state and to global objects are synchronized.
20** Because threads can read the stack of other threads
21** (when running garbage collection),
22** a thread must also synchronize any write-access to its own stack.
23** Unsynchronized accesses are allowed only when reading its own stack,
24** or when reading immutable fields from global objects
25** (such as string values and udata values).
26*/
27#ifndef lua_lock
28#define lua_lock(L) ((void) 0)
29#endif
30
31#ifndef lua_unlock
32#define lua_unlock(L) ((void) 0)
33#endif
34
35
36#ifndef lua_userstateopen
37#define lua_userstateopen(l)
38#endif
39
40
41 17
42struct lua_longjmp; /* defined in ldo.c */ 18struct lua_longjmp; /* defined in ldo.c */
43 19
@@ -74,15 +50,8 @@ typedef struct CallInfo {
74 StkId func; /* function index in the stack */ 50 StkId func; /* function index in the stack */
75 StkId top; /* top for this function */ 51 StkId top; /* top for this function */
76 int nresults; /* expected number of results from this function */ 52 int nresults; /* expected number of results from this function */
77 union { 53 const Instruction *savedpc;
78 struct { /* for Lua functions */ 54 int tailcalls; /* number of tail calls lost under this entry */
79 const Instruction *savedpc;
80 int tailcalls; /* number of tail calls lost under this entry */
81 } l;
82 struct { /* for C functions */
83 int dummy; /* just to avoid an empty struct */
84 } c;
85 } u;
86} CallInfo; 55} CallInfo;
87 56
88 57