Changeset eeb9f9f for libcfa/src/concurrency/ready_queue.cfa
- Timestamp:
- May 3, 2021, 4:39:32 PM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- d3ba775
- Parents:
- f6fdfb14
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/ready_queue.cfa
rf6fdfb14 reeb9f9f 524 524 assert(!lanes.data[idx].lock); 525 525 526 #if defined(USE_NEW_SUBQUEUE)527 526 if(is_empty(sl)) { 528 527 assert( sl.anchor.next == 0p ); … … 534 533 assert( mock_head(sl) != sl.prev ); 535 534 } 536 #else537 assert(head(sl)->link.prev == 0p );538 assert(head(sl)->link.next->link.prev == head(sl) );539 assert(tail(sl)->link.next == 0p );540 assert(tail(sl)->link.prev->link.next == tail(sl) );541 542 if(is_empty(sl)) {543 assert(tail(sl)->link.prev == head(sl));544 assert(head(sl)->link.next == tail(sl));545 } else {546 assert(tail(sl)->link.prev != head(sl));547 assert(head(sl)->link.next != tail(sl));548 }549 #endif550 535 } 551 536 } … … 569 554 static inline void fix(__intrusive_lane_t & ll) { 570 555 #if !defined(USE_MPSC) 571 #if defined(USE_NEW_SUBQUEUE)572 556 if(is_empty(ll)) { 573 557 verify(ll.anchor.next == 0p); 574 558 ll.prev = mock_head(ll); 575 559 } 576 #else577 // if the list is not empty then follow he pointer and fix its reverse578 if(!is_empty(ll)) {579 head(ll)->link.next->link.prev = head(ll);580 tail(ll)->link.prev->link.next = tail(ll);581 }582 // Otherwise just reset the list583 else {584 verify(tail(ll)->link.next == 0p);585 tail(ll)->link.prev = head(ll);586 head(ll)->link.next = tail(ll);587 verify(head(ll)->link.prev == 0p);588 }589 #endif590 560 #endif 591 561 }
Note: See TracChangeset
for help on using the changeset viewer.