Ignore:
Timestamp:
Jun 24, 2020, 2:52:49 PM (4 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
7bfc849
Parents:
c7816be
Message:

Moved interrupts in io.cfa to be more localized

File:
1 edited

Legend:

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

    rc7816be r8ae4165  
    684684                verify( data != 0 );
    685685
    686                 disable_interrupts();
    687686
    688687                // Prepare the data we need
     
    691690                uint32_t cnt = *ring.submit_q.num;
    692691                uint32_t mask = *ring.submit_q.mask;
    693                 uint32_t off = __tls_rand();
     692
     693                disable_interrupts();
     694                        uint32_t off = __tls_rand();
     695                enable_interrupts( __cfaabi_dbg_ctx );
    694696
    695697                // Loop around looking for an available spot
     
    707709                                        // update statistics
    708710                                        #if !defined(__CFA_NO_STATISTICS__)
    709                                                 __tls_stats()->io.submit_q.alloc_avg.val   += len;
    710                                                 __tls_stats()->io.submit_q.alloc_avg.block += block;
    711                                                 __tls_stats()->io.submit_q.alloc_avg.cnt   += 1;
     711                                                disable_interrupts();
     712                                                        __tls_stats()->io.submit_q.alloc_avg.val   += len;
     713                                                        __tls_stats()->io.submit_q.alloc_avg.block += block;
     714                                                        __tls_stats()->io.submit_q.alloc_avg.cnt   += 1;
     715                                                enable_interrupts( __cfaabi_dbg_ctx );
    712716                                        #endif
    713717
    714                                         enable_interrupts( __cfaabi_dbg_ctx );
    715718
    716719                                        // Success return the data
Note: See TracChangeset for help on using the changeset viewer.