once

Jancy provides an elegant syntax for lazy initialization. Prefix the necessary piece of code with once and the compiler will generate a thread-safe wrapper. The latter will ensure that this code executes once per each program run.

void foo() {
    once initialize();

    // ...
}

If your lazy initialization requires more than a single statement, enclose the entire block of your initialization code in a compound statement:

void foo() {
    once {
        initializeTables();
        initializeMaps();
        initializeIo();

        // ...
    }

    // ...
}

Jancy also provides a way to run the lazy initialization once per thread. Use threadlocal once to achieve this:

void foo() {
    threadlocal once initializeThread();

    // ...
}