Changeset 622


Ignore:
Timestamp:
Mar 7, 2004, 7:49:07 AM (15 years ago)
Author:
gb
Message:

Lock the area_lock while threads are suspended. TCR cleanup frees tlb_pointer.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/lisp-kernel/thread_manager.c

    r619 r622  
    483483    destroy_semaphore(&tcr->reset_completion);
    484484    destroy_semaphore(&tcr->activate);
     485    free(tcr->tlb_pointer);
     486    tcr->tlb_pointer = NULL;
     487    tcr->tlb_limit = 0;
    485488    tcr->osid = 0;
    486489    UNLOCK(lisp_global(AREA_LOCK),tcr);
     
    836839
    837840  LOCK(lisp_global(TCR_LOCK), current);
     841  LOCK(lisp_global(AREA_LOCK), current);
    838842  for (other = current->next; other != current; other = other->next) {
    839843    if ((other->osid != 0)) {
     
    865869    resume_tcr(other);
    866870  }
     871  UNLOCK(lisp_global(AREA_LOCK), current);
    867872  UNLOCK(lisp_global(TCR_LOCK), current);
    868873}
Note: See TracChangeset for help on using the changeset viewer.