Wolfgang Thallergcc16 merge934c3885 months agoHistory
66 lines · 1.5 KB · D
RawDownload
/** * The thread module provides support for thread creation and management. * * Copyright: Copyright Sean Kelly 2005 - 2012. * License: Distributed under the *      $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0). *    (See accompanying file LICENSE) * Authors:   Sean Kelly, Walter Bright, Alex Rønne Petersen, Martin Nowak * Source:    $(DRUNTIMESRC core/thread/context.d) */ module core.thread.context; ///struct StackContext{    void* bstack, tstack;     /// Slot for the EH implementation to keep some state for each stack    /// (will be necessary for exception chaining, etc.). Opaque as far as    /// we are concerned here.    void* ehContext;    StackContext* within;    StackContext* next, prev;} struct Callable{    void opAssign(void function() fn) pure nothrow @nogc @safe    {        () @trusted { m_fn = fn; }();        m_type = Call.FN;    }    void opAssign(void delegate() dg) pure nothrow @nogc @safe    {        () @trusted { m_dg = dg; }();        m_type = Call.DG;    }    void opCall()    {        switch (m_type)        {            case Call.FN:                m_fn();                break;            case Call.DG:                m_dg();                break;            default:                break;        }    }private:    enum Call    {        NO,        FN,        DG    }    Call m_type = Call.NO;    union    {        void function() m_fn;        void delegate() m_dg;    }}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t