comparison src/luan/LuanState.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 fe63c508a177
children dd36eae6aa04
comparison
equal deleted inserted replaced
786:fe63c508a177 787:c49980cdece6
15 15
16 public final class LuanState implements LuanCloneable { 16 public final class LuanState implements LuanCloneable {
17 public LuanJava java; 17 public LuanJava java;
18 private Map registry; 18 private Map registry;
19 private final List<Reference<Closeable>> onClose = new ArrayList<Reference<Closeable>>(); 19 private final List<Reference<Closeable>> onClose = new ArrayList<Reference<Closeable>>();
20 public boolean isLocked = false;
20 21
21 public LuanState() { 22 public LuanState() {
22 java = new LuanJava(); 23 java = new LuanJava();
23 registry = new HashMap(); 24 registry = new HashMap();
24 } 25 }
31 32
32 @Override public void deepenClone(LuanCloneable dc,LuanCloner cloner) { 33 @Override public void deepenClone(LuanCloneable dc,LuanCloner cloner) {
33 LuanState clone = (LuanState)dc; 34 LuanState clone = (LuanState)dc;
34 clone.registry = cloner.clone(registry); 35 clone.registry = cloner.clone(registry);
35 clone.java = (LuanJava)cloner.clone(java); 36 clone.java = (LuanJava)cloner.clone(java);
36 /* 37 if( cloner.type == LuanCloner.Type.INCREMENTAL )
37 if( !cloner.deep ) { 38 isLocked = true;
38 LuanCloner myCloner = new LuanCloner(false);
39 registry = myCloner.clone(registry);
40 java = (LuanJava)myCloner.clone(java);
41 }
42 */
43 } 39 }
44 40
45 public final Map registry() { 41 public Map registry() {
46 return registry; 42 return registry;
47 } 43 }
48 44
49 public void onClose(Closeable c) { 45 public void onClose(Closeable c) {
50 onClose.add(new WeakReference<Closeable>(c)); 46 onClose.add(new WeakReference<Closeable>(c));