commit a1f42c7a067ce33801360f7766e002929a120f51
parent 1aa0401c3e53c8e3ddaec8133f4d9b505b95812d
Author: Andres Navarro <canavarro82@gmail.com>
Date:   Fri, 24 Aug 2012 02:30:52 -0300
Added locking to kapplicative functions.
Diffstat:
4 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/kapplicative.c b/src/kapplicative.c
@@ -13,6 +13,7 @@
 /* GC: Assumes underlying is rooted */
 TValue kwrap(klisp_State *K, TValue underlying)
 {
+    klisp_lock(K);
     Applicative *new_app = klispM_new(K, Applicative);
 
     /* header + gc_fields */
@@ -21,5 +22,6 @@ TValue kwrap(klisp_State *K, TValue underlying)
 
     /* applicative specific fields */
     new_app->underlying = underlying;
+    klisp_unlock(K);
     return gc2app(new_app);
 }
diff --git a/src/kgsystem.c b/src/kgsystem.c
@@ -104,6 +104,7 @@ void delete_file(klisp_State *K)
     /* TEMP: this should probably be done in a operating system specific
        manner, but this will do for now */
     if (remove(kstring_buf(filename))) {
+        /* XXX lock? */
         /* At least in Windows, this could have failed if there's a dead
            (in the gc sense) port still open, should retry once after 
            doing a complete GC. This isn't ideal but... */
diff --git a/src/kmem.c b/src/kmem.c
@@ -75,7 +75,6 @@ void *klispM_realloc_ (klisp_State *K, void *block, size_t osize, size_t nsize) 
 
     /* TEMP: for now only Stop the world GC */
     /* TEMP: prevent recursive call of klispC_fullgc() */
-
     klisp_lock(K);
 #ifdef KUSE_GC
     if (nsize > 0 && G(K)->totalbytes - osize + nsize >= G(K)->GCthreshold) {
diff --git a/src/kstate.c b/src/kstate.c
@@ -151,7 +151,7 @@ static void preinit_state (klisp_State *K, global_State *g) {
 static void close_state(klisp_State *K)
 {
     global_State *g = G(K);
-
+/* XXX lock? */
     /* collect all objects */
     klispC_freeall(K);
     klisp_assert(g->rootgc == obj2gco(K));
@@ -431,6 +431,7 @@ void klispT_freethread (klisp_State *K, klisp_State *K1)
 
 void klisp_close (klisp_State *K)
 {
+/* XXX lock? */
     K = G(K)->mainthread;  /* only the main thread can be closed */
 
 /* XXX lua does the following */