diff src/luan/modules/IoLuan.java @ 787:c49980cdece6

use incremental cloning to serve web pages
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 04 Sep 2016 00:18:00 -0600
parents 1a68fc55a80c
children 9c13a15a4002
line wrap: on
line diff
--- a/src/luan/modules/IoLuan.java	Fri Sep 02 17:43:29 2016 -0600
+++ b/src/luan/modules/IoLuan.java	Sun Sep 04 00:18:00 2016 -0600
@@ -685,7 +685,13 @@
 		LuanFunction opener = (LuanFunction)schemes.get(luan,scheme);
 		if( opener == null )
 			throw new LuanException( "invalid scheme '"+scheme+"' in '"+name+"'" );
-		return (LuanTable)Luan.first(opener.call(luan,new Object[]{location,options}));
+		boolean isLocked = luan.isLocked;  // hack needed for luan scheme functions
+		luan.isLocked = false;
+		try {
+			return (LuanTable)Luan.first(opener.call(luan,new Object[]{location,options}));
+		} finally {
+			luan.isLocked = isLocked;
+		}
 	}
 
 	public static final class LuanSocket extends LuanIO {