Ignore:
File:
1 edited

Legend:

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

    rd3ba775 rf302d80  
    5353// Push a thread onto this lane
    5454// returns true of lane was empty before push, false otherwise
    55 void push( __intrusive_lane_t & this, $thread * node ) {
     55static inline void push( __intrusive_lane_t & this, $thread * node ) {
    5656        /* paranoid */ verify( node->link.next == 0p );
    5757        /* paranoid */ verify( node->link.ts   == 0  );
     
    7777// returns popped
    7878// returns true of lane was empty before push, false otherwise
    79 $thread * pop( __intrusive_lane_t & this ) {
     79static inline [* $thread, unsigned long long] pop( __intrusive_lane_t & this ) {
    8080        /* paranoid */ verify( this.anchor.next != 0p );
    8181        /* paranoid */ verify( this.anchor.ts   != 0  );
    8282
    8383        // Get the relevant nodes locally
     84        unsigned long long ts = this.anchor.ts;
    8485        $thread * node = this.anchor.next;
    8586        this.anchor.next = node->link.next;
     
    9495        /* paranoid */ verify( node->link.next == 0p );
    9596        /* paranoid */ verify( node->link.ts   == 0  );
    96         return node;
     97        return [node, ts];
    9798}
    9899
Note: See TracChangeset for help on using the changeset viewer.