Ignore:
Timestamp:
Feb 13, 2020, 4:18:07 PM (5 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
50b8885
Parents:
9f575ea
Message:

Added park/unpark primitives thread and removed BlockInternal?.
Converted monitors to use park unpark.
Intrusive Queue now mark next field when thread is inside queue.
Added several asserts to kernel and monitor.
Added a few tests for park and unpark.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/monitor.hfa

    r9f575ea r3381ed7  
    3232        signal_stack{};
    3333        owner         = 0p;
     34        owner_reason  = __NO_OWNER;
    3435        recursion     = 0;
    3536        mask.accepted = 0p;
     
    133134              bool signal      ( condition & this );
    134135              bool signal_block( condition & this );
    135 static inline bool is_empty    ( condition & this ) { return !this.blocked.head; }
     136static inline bool is_empty    ( condition & this ) { return this.blocked.head == 1p; }
    136137         uintptr_t front       ( condition & this );
    137138
Note: See TracChangeset for help on using the changeset viewer.