- File:
-
- 1 edited
-
libcfa/src/concurrency/kernel.cfa (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/kernel.cfa
rc66f6cb r8e16177 256 256 } 257 257 258 void ?{}(cluster & this, const char name[], Duration preemption_rate ) with( this ) {258 void ?{}(cluster & this, const char name[], Duration preemption_rate, int io_flags) with( this ) { 259 259 this.name = name; 260 260 this.preemption_rate = preemption_rate; … … 270 270 threads{ __get }; 271 271 272 __kernel_io_startup( this, &this == mainCluster );272 __kernel_io_startup( this, io_flags, &this == mainCluster ); 273 273 274 274 doregister(this); … … 901 901 // Wake them up 902 902 __cfadbg_print_safe(runtime_core, "Kernel : waking Processor %p\n", this->idles.head); 903 /* paranoid */ verify( ! kernelTLS.preemption_state.enabled ); 903 904 post( this->idles.head->idle ); 904 905 … … 911 912 static bool __wake_proc(processor * this) { 912 913 __cfadbg_print_safe(runtime_core, "Kernel : waking Processor %p\n", this); 913 return post( this->idle ); 914 915 disable_interrupts(); 916 /* paranoid */ verify( ! kernelTLS.preemption_state.enabled ); 917 bool ret = post( this->idle ); 918 enable_interrupts( __cfaabi_dbg_ctx ); 919 920 return ret; 914 921 } 915 922 … … 993 1000 void ^?{}(semaphore & this) {} 994 1001 995 voidP(semaphore & this) with( this ){1002 bool P(semaphore & this) with( this ){ 996 1003 lock( lock __cfaabi_dbg_ctx2 ); 997 1004 count -= 1; … … 1003 1010 unlock( lock ); 1004 1011 park( __cfaabi_dbg_ctx ); 1012 return true; 1005 1013 } 1006 1014 else { 1007 1015 unlock( lock ); 1016 return false; 1008 1017 } 1009 1018 }
Note:
See TracChangeset
for help on using the changeset viewer.