Mercurial Hosting > luan
diff src/luan/modules/http/HttpServicer.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 | d69d3c51c44e |
children | 60661a8e738c |
line wrap: on
line diff
--- a/src/luan/modules/http/HttpServicer.java Fri Sep 02 17:43:29 2016 -0600 +++ b/src/luan/modules/http/HttpServicer.java Sun Sep 04 00:18:00 2016 -0600 @@ -46,6 +46,12 @@ { LuanFunction fn; synchronized(luan) { + if( luan.isLocked ) { + if( PackageLuan.wouldLoad(luan,"luan:http/Http.luan") || PackageLuan.wouldLoad(luan,modName) ) { + luan.isLocked = false; + luan.deepenClone(luan,new LuanCloner(LuanCloner.Type.COMPLETE)); + } + } LuanTable module = (LuanTable)PackageLuan.require(luan,"luan:http/Http.luan"); LuanTable per_session_pages = (LuanTable)module.rawGet("per_session_pages"); Object mod = PackageLuan.load(luan,modName); @@ -65,7 +71,7 @@ } fn = (LuanFunction)PackageLuan.require(luan,modName); } else { - LuanCloner cloner = new LuanCloner(LuanCloner.Type.COMPLETE); + LuanCloner cloner = new LuanCloner(LuanCloner.Type.INCREMENTAL); luan = (LuanState)cloner.clone(luan); fn = (LuanFunction)cloner.get(mod); }