Ignore:
File:
1 edited

Legend:

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

    r11054eb ra3821fa  
    9090        static inline __u32 __release_sqes( struct $io_context & );
    9191
    92         void __cfa_io_drain( processor * proc ) {
     92        bool __cfa_io_drain( processor * proc ) {
    9393                /* paranoid */ verify( ! __preemption_enabled() );
    9494                /* paranoid */ verify( proc );
     
    104104                __STATS__( false, io.calls.drain++; io.calls.completed += count; )
    105105
     106                if(count == 0) return false;
     107
    106108                for(i; count) {
    107109                        unsigned idx = (head + i) & mask;
     
    124126                /* paranoid */ verify( ! __preemption_enabled() );
    125127
    126                 return;
     128                return true;
    127129        }
    128130
     
    242244                        // Allocation was successful
    243245                        __STATS__( true, io.alloc.fast += 1; )
    244                         enable_interrupts( __cfaabi_dbg_ctx );
     246                        enable_interrupts();
    245247
    246248                        __cfadbg_print_safe(io, "Kernel I/O : fast allocation successful from ring %d\n", ctx->fd);
     
    254256                // Fast path failed, fallback on arbitration
    255257                __STATS__( true, io.alloc.slow += 1; )
    256                 enable_interrupts( __cfaabi_dbg_ctx );
     258                enable_interrupts();
    257259
    258260                $io_arbiter * ioarb = proc->cltr->io.arbiter;
     
    312314                        // Mark the instance as no longer in-use, re-enable interrupts and return
    313315                        __STATS__( true, io.submit.fast += 1; )
    314                         enable_interrupts( __cfaabi_dbg_ctx );
     316                        enable_interrupts();
    315317
    316318                        __cfadbg_print_safe(io, "Kernel I/O : submitted on fast path\n");
     
    320322                // Fast path failed, fallback on arbitration
    321323                __STATS__( true, io.submit.slow += 1; )
    322                 enable_interrupts( __cfaabi_dbg_ctx );
     324                enable_interrupts();
    323325
    324326                __cfadbg_print_safe(io, "Kernel I/O : falling back on arbiter for submission\n");
Note: See TracChangeset for help on using the changeset viewer.