Skip to content

Instantly share code, notes, and snippets.

/*
* Implementation of a few algorithms around a `fetchNext` API.
*/
import std.array : empty;
import std.traits : lvalueOf, rvalueOf;
import core.lifetime : move;
import std.stdio : File, writeln;
import std.typecons : Flag, Yes, No;
@radcapricorn
radcapricorn / initonceextraflagnobug.d
Created May 25, 2017 02:53
initOnce, extra flag, no bug
import core.thread;
import core.sync.semaphore;
import core.sync.mutex;
import core.atomic;
import std.stdio;
import std.typecons;
// 'extra' flag
shared bool initialized;
@radcapricorn
radcapricorn / spinbug.d
Created May 25, 2017 02:51
Spinlock bug
import core.thread;
import core.sync.semaphore;
import core.atomic;
import std.stdio;
import std.typecons;
shared uint initialized;
__gshared uint a;
__gshared uint b;