Changeset 8f49a54 for src/libcfa/concurrency/kernel.c
- Timestamp:
- Jan 19, 2017, 3:42:29 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- dcb42b8
- Parents:
- 4a3386b4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/libcfa/concurrency/kernel.c
r4a3386b4 r8f49a54 119 119 // context switch to specified coroutine 120 120 // Which is now the current_coroutine 121 LIB_DEBUG_PRINTF("Kernel : switching to ctx %p (from %p, current %p)\n", thrd_ctx, proc_ctx, current_coroutine);121 // LIB_DEBUG_PRINTF("Kernel : switching to ctx %p (from %p, current %p)\n", thrd_ctx, proc_ctx, current_coroutine); 122 122 current_coroutine = thrd_ctx; 123 123 CtxSwitch( proc_ctx->stack.context, thrd_ctx->stack.context ); 124 124 current_coroutine = proc_ctx; 125 LIB_DEBUG_PRINTF("Kernel : returned from ctx %p (to %p, current %p)\n", thrd_ctx, proc_ctx, current_coroutine);125 // LIB_DEBUG_PRINTF("Kernel : returned from ctx %p (to %p, current %p)\n", thrd_ctx, proc_ctx, current_coroutine); 126 126 127 127 // when CtxSwitch returns we are back in the processor coroutine … … 136 136 137 137 void scheduler_add( thread_h * thrd ) { 138 LIB_DEBUG_PRINTF("Kernel : scheduling %p on core %p (%d spots)\n", thrd, systemProcessor, systemProcessor->thread_count);139 138 for(int i = 0; i < systemProcessor->thread_count; i++) { 140 139 if(systemProcessor->threads[i] == NULL) { … … 143 142 } 144 143 } 145 assert (false);144 assertf(false, "Scheduler full"); 146 145 } 147 146 148 147 void scheduler_remove( thread_h * thrd ) { 149 LIB_DEBUG_PRINTF("Kernel : unscheduling %p from core %p\n", thrd, systemProcessor);150 148 for(int i = 0; i < systemProcessor->thread_count; i++) { 151 149 if(systemProcessor->threads[i] == thrd) { 152 150 systemProcessor->threads[i] = NULL; 153 break;154 }155 }156 for(int i = 0; i < systemProcessor->thread_count; i++) {157 if(systemProcessor->threads[i] != NULL) {158 151 return; 159 152 } 160 153 } 161 LIB_DEBUG_PRINTF("Kernel : terminating core %p\n", systemProcessor); 162 systemProcessor->terminated = true; 154 assertf(false, "Trying to unschedule unkown thread"); 163 155 } 164 156 … … 229 221 230 222 mainThread_info_t ctx; 231 LIB_DEBUG_PRINTF("Kernel : base : %p\n", ctx.base );232 LIB_DEBUG_PRINTF("Kernel : top : %p\n", ctx.top );233 LIB_DEBUG_PRINTF("Kernel : limit : %p\n", ctx.limit );234 LIB_DEBUG_PRINTF("Kernel : size : %x\n", ctx.size );235 LIB_DEBUG_PRINTF("Kernel : storage : %p\n", ctx.storage );236 LIB_DEBUG_PRINTF("Kernel : context : %p\n", ctx.context );223 // LIB_DEBUG_PRINTF("Kernel : base : %p\n", ctx.base ); 224 // LIB_DEBUG_PRINTF("Kernel : top : %p\n", ctx.top ); 225 // LIB_DEBUG_PRINTF("Kernel : limit : %p\n", ctx.limit ); 226 // LIB_DEBUG_PRINTF("Kernel : size : %x\n", ctx.size ); 227 // LIB_DEBUG_PRINTF("Kernel : storage : %p\n", ctx.storage ); 228 // LIB_DEBUG_PRINTF("Kernel : context : %p\n", ctx.context ); 237 229 238 230 // Start by initializing the main thread … … 265 257 scheduler_remove(mainThread); 266 258 267 LIB_DEBUG_PRINTF("Suspending main\n"); 259 LIB_DEBUG_PRINTF("Kernel : Terminating system processor\n"); 260 systemProcessor->terminated = true; 261 268 262 suspend(); 269 263 270 LIB_DEBUG_PRINTF("Kernel : Control return to initial process thread\n");264 LIB_DEBUG_PRINTF("Kernel : Control returned to initial process thread\n"); 271 265 272 266 ^(systemProcessor->ctx){};
Note: See TracChangeset
for help on using the changeset viewer.