Ignore:
Timestamp:
May 5, 2021, 1:17:07 PM (17 months ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
arm-eh, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
b9376fe
Parents:
f55d54d
Message:

Fix timestamp with new subqueue which was read after being cleared.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/ready_queue.cfa

    rf55d54d rf302d80  
    406406
    407407                        // WARNING: std::min is polymorphic and therefore causes 500% slowdown instead of the expected 2%
    408                         proc->rdq.cutoff = tsc1 < tsc2 ? tsc1 : tsc2; 
     408                        proc->rdq.cutoff = tsc1 < tsc2 ? tsc1 : tsc2;
    409409                }
    410410                else {
     
    469469        // Actually pop the list
    470470        struct $thread * thrd;
    471         thrd = pop(lane);
     471        unsigned long long tsv;
     472        [thrd, tsv] = pop(lane);
    472473
    473474        /* paranoid */ verify(thrd);
     
    481482
    482483        #if defined(USE_WORK_STEALING)
    483                 lanes.tscs[w].tv = thrd->link.ts;
     484                lanes.tscs[w].tv = tsv;
    484485        #endif
    485486
     
    663664                        while(!is_empty(lanes.data[idx])) {
    664665                                struct $thread * thrd;
    665                                 thrd = pop(lanes.data[idx]);
     666                                unsigned long long _;
     667                                [thrd, _] = pop(lanes.data[idx]);
    666668
    667669                                push(cltr, thrd);
Note: See TracChangeset for help on using the changeset viewer.