Changeset d107010 for src/libcfa/concurrency
- Timestamp:
- Mar 4, 2017, 10:31:03 PM (9 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:
- 3f80888
- Parents:
- c3ebf37 (diff), 8191203 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - Location:
- src/libcfa/concurrency
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/libcfa/concurrency/invoke.h
rc3ebf37 rd107010 60 60 61 61 struct coStack_t { 62 unsigned int size; // size of stack63 void *storage; // pointer to stack64 void *limit; // stack grows towards stack limit65 void *base; // base of stack66 void *context; // address of cfa_context_t67 void *top; // address of top of storage62 unsigned int size; // size of stack 63 void *storage; // pointer to stack 64 void *limit; // stack grows towards stack limit 65 void *base; // base of stack 66 void *context; // address of cfa_context_t 67 void *top; // address of top of storage 68 68 bool userStack; 69 69 }; … … 73 73 struct coroutine { 74 74 struct coStack_t stack; 75 const char *name; // textual name for coroutine/task, initialized by uC++ generated code76 int errno_; // copy of global UNIX variable errno77 enum coroutine_state state; // current execution status for coroutine78 struct coroutine *starter; // first coroutine to resume this one79 struct coroutine *last; // last coroutine to resume this one75 const char *name; // textual name for coroutine/task, initialized by uC++ generated code 76 int errno_; // copy of global UNIX variable errno 77 enum coroutine_state state; // current execution status for coroutine 78 struct coroutine *starter; // first coroutine to resume this one 79 struct coroutine *last; // last coroutine to resume this one 80 80 }; 81 81 82 82 struct thread { 83 struct coroutine c; // coroutine body used to store context84 struct signal_once terminated; // indicate if execuation state is not halted85 struct thread * next; // instrusive link field for threads83 struct coroutine c; // coroutine body used to store context 84 struct signal_once terminated; // indicate if execuation state is not halted 85 struct thread * next; // instrusive link field for threads 86 86 }; 87 87 -
src/libcfa/concurrency/kernel.c
rc3ebf37 rd107010 456 456 457 457 void append( simple_thread_list * this, thread * t ) { 458 assert( t->next == NULL);458 assert(this->tail != NULL); 459 459 *this->tail = t; 460 460 this->tail = &t->next; … … 470 470 head->next = NULL; 471 471 } 472 473 472 return head; 474 473 } -
src/libcfa/concurrency/threads
rc3ebf37 rd107010 9 9 // 10 10 // Author : Thierry Delisle 11 // Created On : Tue Jan 17 12:27:26 201 611 // Created On : Tue Jan 17 12:27:26 2017 12 12 // Last Modified By : Thierry Delisle 13 13 // Last Modified On : -- -
src/libcfa/concurrency/threads.c
rc3ebf37 rd107010 9 9 // 10 10 // Author : Thierry Delisle 11 // Created On : Tue Jan 17 12:27:26 201 611 // Created On : Tue Jan 17 12:27:26 2017 12 12 // Last Modified By : Thierry Delisle 13 13 // Last Modified On : --
Note:
See TracChangeset
for help on using the changeset viewer.