소스 검색

reader runs outside core Lua

Roberto Ierusalimschy 22 년 전
부모
커밋
885961be1d
1개의 변경된 파일7개의 추가작업 그리고 2개의 파일을 삭제
  1. 7 2
      lzio.c

+ 7 - 2
lzio.c

@@ -1,5 +1,5 @@
 /*
-** $Id: lzio.c,v 1.25 2003/08/25 19:51:54 roberto Exp roberto $
+** $Id: lzio.c,v 1.26 2003/08/25 20:00:50 roberto Exp roberto $
 ** a generic input stream interface
 ** See Copyright Notice in lua.h
 */
@@ -13,12 +13,17 @@
 
 #include "llimits.h"
 #include "lmem.h"
+#include "lstate.h"
 #include "lzio.h"
 
 
 int luaZ_fill (ZIO *z) {
   size_t size;
-  const char *buff = z->reader(z->L, z->data, &size);
+  lua_State *L = z->L;
+  const char *buff;
+  lua_unlock(L);
+  buff = z->reader(L, z->data, &size);
+  lua_lock(L);
   if (buff == NULL || size == 0) return EOZ;
   z->n = size - 1;
   z->p = buff;