Changeset b8116cd for src/libcfa
- Timestamp:
- Oct 2, 2017, 11:55:26 AM (7 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:
- 72ae87c
- Parents:
- 549c006
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/libcfa/concurrency/monitor.c
r549c006 rb8116cd 158 158 LIB_DEBUG_PRINT_SAFE("Kernel : mon accepts dtor, block and signal it \n"); 159 159 160 // Wake the thread that is waiting for this 161 __condition_criterion_t * urgent = pop( &this->signal_stack ); 162 verify( urgent ); 163 160 164 // Reset mask 161 165 reset_mask( this ); … … 165 169 166 170 // Some one else has the monitor, wait for him to finish and then run 167 BlockInternal( &this->lock );171 BlockInternal( &this->lock, urgent->owner->waiting_thread ); 168 172 169 173 // Some one was waiting for us, enter … … 551 555 *mask.accepted = index; 552 556 if( mask.clauses[index].is_dtor ) { 557 LIB_DEBUG_PRINT_SAFE("Kernel : dtor already there\n"); 553 558 verifyf( mask.clauses[index].size == 1 , "ERROR: Accepted dtor has more than 1 mutex parameter." ); 554 559
Note: See TracChangeset
for help on using the changeset viewer.