()
| 489 | |
| 490 | private static boolean INIT = false; // init guard |
| 491 | private synchronized static void doInit() { |
| 492 | if(INIT) {return;} else {INIT=true;} |
| 493 | |
| 494 | Var.pushThreadBindings( |
| 495 | RT.mapUniqueKeys(CURRENT_NS, CURRENT_NS.deref(), |
| 496 | WARN_ON_REFLECTION, WARN_ON_REFLECTION.deref() |
| 497 | ,RT.UNCHECKED_MATH, RT.UNCHECKED_MATH.deref())); |
| 498 | try { |
| 499 | Symbol USER = Symbol.intern("user"); |
| 500 | Symbol CLOJURE = Symbol.intern("clojure.core"); |
| 501 | |
| 502 | Var in_ns = var("clojure.core", "in-ns"); |
| 503 | Var refer = var("clojure.core", "refer"); |
| 504 | in_ns.invoke(USER); |
| 505 | refer.invoke(CLOJURE); |
| 506 | maybeLoadResourceScript("user.clj"); |
| 507 | |
| 508 | // start socket servers |
| 509 | Var require = var("clojure.core", "require"); |
| 510 | Symbol SERVER = Symbol.intern("clojure.core.server"); |
| 511 | require.invoke(SERVER); |
| 512 | Var start_servers = var("clojure.core.server", "start-servers"); |
| 513 | start_servers.invoke(System.getProperties()); |
| 514 | } |
| 515 | catch(Exception e) { |
| 516 | throw Util.sneakyThrow(e); |
| 517 | } |
| 518 | finally { |
| 519 | Var.popThreadBindings(); |
| 520 | } |
| 521 | } |
| 522 | |
| 523 | static public int nextID(){ |
| 524 | return id.getAndIncrement(); |
no test coverage detected