Ignore:
Timestamp:
Apr 14, 2020, 11:53:25 AM (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:
34d0a28
Parents:
7df014f
Message:

Implemented basic non-blocking io

File:
1 edited

Legend:

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

    r7df014f r2d8f7b0  
    615615}
    616616
    617 void unpark( $thread * thrd __cfaabi_dbg_ctx_param2 ) {
    618         if( !thrd ) return;
    619 
    620         disable_interrupts();
     617// KERNEL ONLY unpark with out disabling interrupts
     618void __unpark( $thread * thrd __cfaabi_dbg_ctx_param2 ) {
    621619        static_assert(sizeof(thrd->state) == sizeof(int));
    622620
     
    647645                        abort();
    648646        }
     647}
     648
     649void unpark( $thread * thrd __cfaabi_dbg_ctx_param2 ) {
     650        if( !thrd ) return;
     651
     652        disable_interrupts();
     653        __unpark( thrd __cfaabi_dbg_ctx_fwd2 );
    649654        enable_interrupts( __cfaabi_dbg_ctx );
    650655}
Note: See TracChangeset for help on using the changeset viewer.