Coding
Concurrency

Double-Checked Initialization

Premium
Difficulty

Asked at XTX Markets, Squarepoint Capital

Theory: Concurrency From Scratch

Read the problem, hints and solution here. The editor needs a bigger screen: open this page on a laptop to write and run your code.

xxxxxxxx xxxxxxxxx xxxxxxxxx xx xxxxx xxx, xxxx, xxxxxx, xxxx xxxx xxxxxxx. xx xx xxx xxxx-xxxxxxx xxxxxxxxxxx xxxxxxx xxxxx xx, xxx xxx xxxxxxx xxxxxxxxx xxxxxx xxxxx xx xxxxxx xx x xxx xxxx xxxx xxx xxxxx.

xx (xxx_ == xxxxxxx) {              // xxxx xxxxxxx xxx xxxx
    xxx::xxxx_xxxxx x(xxxxx_);
    xx (xxx_ == xxxxxxx) xxx_ = xxx xxxxxx(xxxx);
}
xxxxxx xxx_;

xxxxxxxxx xxxxxxxxxx xxxxxxxxx.

  • xxx(xxxx) — xxx xxxxxx, xxxxxxxx xx xx xxx xxxxx xxxx
  • xxxxx_xxxxx() — xxx xxxx xxxxx xxx xxxxxxxxxxx xxx

x xxxxxx xxxx xx xxxxxxxx xxxx xxxxxx xxx xxx xxxxxxxxxxxxx. xxxx xxxxxxx xxxx xxx() xx xxxx, xxx xxxxx xxx xxxx xxxx xxxx xxxx x xxxxx xxxxxxxxxxx xxxxxx. xxx xxxxxxxxxxx xxxx xxx xxxxxxx xxxx.

xxxxxxxx

xxxxxxxxxx xxxx;
xxxx.xxx(x).xxxxxxxx();   // xx
xxxx.xxxxx_xxxxx();       // x
xxxx.xxx(x).xxxxxxxx();   // xx
xxxx.xxxxx_xxxxx();       // xxxxx x

xxxxxxxxxxx

  • xxx xxxxxx xxxxxxx xx x xxxx xxxx xxxxxxxx xxx xxxxxxxx xxxx: xx xxxxxxxx xxxx xx x xxxxxxxx xxxxxxx xxxxxx xxxxxx xxxxx x xxxx. xxxx xxxxx xx xxxxxxxxx xxxxxxxxx.
  • xxx xxxxxxx xxxx xxxxxxxx xxxxx xx xxxxx xxxx "xxx xxxxxxx xxxx xxxxx xx". xxx_ = xxx xxxxxx(xxxx) xx xx xxxxxxxxxx, x xxxxxxxxxxx xxx x xxxxx, xxx xxxxxxx xxxxx xxx xxxxx xxxxxxxx xxxxxxx xxxxxx xxx xxxxxxxxxxx'x xxxxxx. x xxxxxx xxxx xxxx x xxx-xxxx xxxxxxx xx xx xxxxxxxxxx xxxxxx, xxxxx xxx xxxx xxxx, xxx xxxxx xxxxxxxxxxxxx xxxxxx. xx xxxx xxx xxxxx, xx xxxxxxx xxxxxxx.
  • xxxxxxx xxxxxx xxxx xxxxxxxxx xxxxx xxxx xxx xxxxxxx xxx xxxx xxxxxx. xxxxx xxxx xxxx xx xxx xxxxxxxxx; xxxx xxxx xxxxx xx.
  • xxx xxxxxxx xxxxxxx xxxxx xxx xxxxxx xx xxxxxxxx.

This problem is only available to subscribers.

Language: C++LazyConfig
Sample tests

Unlock the problem to run it against the tests.