更新 'SrcJyDrpy.js'

master
src48597962 8 months ago
parent 7136915bad
commit 6c78751501
  1. 51
      SrcJyDrpy.js

@ -80,34 +80,41 @@ Function.prototype.toString = function () {
const MAX_ENVS = 10; const MAX_ENVS = 10;
let drpyEnvS = globalMap0.getVar('drpyEnvS',{}); let drpyEnvS = globalMap0.getVar('drpyEnvS',{});
let nextEnvId = 0; let nextEnvId = 0;
let lock = false;
function createOrGetEnvironment(id, ext) { function createOrGetEnvironment(id, ext) {
while (lock) {
if (id === undefined) { // 等待锁释放
id = nextEnvId++;
} }
lock = true;
try {
if (id === undefined) {
id = nextEnvId++;
}
if (drpyEnvS[id]) { if (drpyEnvS[id]) {
log(id+'>drpy取缓存'); log(id+'>drpy取缓存');
return drpyEnvS[id]; return drpyEnvS[id];
}else{ }else{
log(id+'>drpy初始化'); log(id+'>drpy初始化');
} }
if (Object.keys(drpyEnvS).length >= MAX_ENVS) { if (Object.keys(drpyEnvS).length >= MAX_ENVS) {
const oldestId = Object.keys(drpyEnvS).sort((a, b) => a - b)[0]; const oldestId = Object.keys(drpyEnvS).sort((a, b) => a - b)[0];
log(oldestId+'>drpy删除'); log(oldestId+'>drpy删除');
delete drpyEnvS[oldestId]; delete drpyEnvS[oldestId];
//globalMap0.putVar('drpyEnvS', drpyEnvS); }
}
drpyEnvS[id] = (function() { drpyEnvS[id] = (function() {
let drpy2 = $.require(module.modulePath.slice(0, module.modulePath.lastIndexOf("/")) +'/drpy/drpy2.js'); let drpy2 = $.require(module.modulePath.slice(0, module.modulePath.lastIndexOf("/")) +'/drpy/drpy2.js');
return drpy2.DRPY(); return drpy2.DRPY();
})(); })();
drpyEnvS[id].init(ext); drpyEnvS[id].init(ext);
//globalMap0.putVar('drpyEnvS', drpyEnvS); globalMap0.putVar('drpyEnvS', drpyEnvS);
return drpyEnvS[id]; return drpyEnvS[id];
} finally {
lock = false;
}
} }
log(Object.keys(drpyEnvS).length); log(Object.keys(drpyEnvS).length);
$.exports = { $.exports = {

Loading…
Cancel
Save