pike.git
/
lib
/
master.pike.in
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/lib/master.pike.in:1440:
"Decode failed: " + call_describe_error(err)); // handle_error(err); } else if (out_of_date_warning) { call_compile_warning (handler, oname, "Compiled file is out of date"); } } }
+
object compiler_lock = DefaultCompilerEnvironment->lock();
+
if(!undefinedp(ret = programs[fname]) && (ret != no_value)) {
+
destruct(compiler_lock);
+
resolv_debug("low_findprog %s: returning cached (from other thread).\n",
+
fname);
+
return ret;
+
}
resolv_debug ("low_findprog %s: compiling, mkobj: %O\n", fname, mkobj); INC_RESOLV_MSG_DEPTH(); programs[fname]=ret=__empty_program(0, fname); AUTORELOAD_CHECK_FILE (fname); string src; if (array|object err = catch (src = master_read_file (fname))) { DEC_RESOLV_MSG_DEPTH(); resolv_debug ("low_findprog %s: failed to read file\n", fname); objects[ret] = no_value; ret=programs[fname]=0; // Negative cache.
pike.git/lib/master.pike.in:1462:
if ( mixed e=catch { ret=compile_string(src, fname, handler, ret, mkobj? (objects[ret]=__null_program()) : 0); } ) { DEC_RESOLV_MSG_DEPTH(); resolv_debug ("low_findprog %s: compilation failed\n", fname); objects[ret] = no_value; ret=programs[fname]=0; // Negative cache.
+
destruct(compiler_lock);
throw(e); }
-
+
destruct(compiler_lock);
DEC_RESOLV_MSG_DEPTH(); resolv_debug ("low_findprog %s: compilation ok\n", fname); break; #if constant(load_module) case ".so": if (fname == "") { werror( "low_findprog(%O, %O) => load_module(\"\")\n" "%s\n", pname, ext, call_describe_backtrace(backtrace()) ); }