// REQUIRED_ARGS: -O

void _d_critical_term()
{
    for (auto p = head; p; p = p.next)
        destroyMutex(p.i);
}

shared S* head;

struct S
{
    S* next;
    int i;
}

void destroyMutex(int i);

struct Mutex { int i; }