Changeset 11095


Ignore:
Timestamp:
Oct 14, 2008, 11:15:23 PM (11 years ago)
Author:
gb
Message:

Create a thread-specific Windows event handle (a sort of one-shot
semaphore) when initializing the TCR, close it on thread exit.

Look for information about Windows pending I/O operations in the
new tcr.pending-io-info slot, of all places.

File:
1 edited

Legend:

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

    r11082 r11095  
    103103    target->interrupt_pending = (1LL << (nbits_in_word - 1LL));
    104104    if (io_pending) {
    105       pending_io * pending = (pending_io *) (target->foreign_exception_status);
     105      pending_io * pending = (pending_io *) (target->pending_io_info);
    106106      if (pending) {
    107107        if (pCancelIoEx) {
     
    12781278    free_tcr_extra_segment(tcr);
    12791279#endif
     1280#ifdef WIN32
     1281    CloseHandle((HANDLE)tcr->io_datum);
     1282    tcr->io_datum = NULL;
     1283#endif
    12801284    UNLOCK(lisp_global(TCR_AREA_LOCK),tcr);
    12811285    if (termination_semaphore) {
     
    13661370#ifdef LINUX
    13671371  linux_exception_init(tcr);
     1372#endif
     1373#ifdef WINDOWS
     1374  tcr->io_datum = (VOID *)CreateEvent(NULL, true, false, NULL);
    13681375#endif
    13691376  tcr->log2_allocation_quantum = unbox_fixnum(lisp_global(DEFAULT_ALLOCATION_QUANTUM));
Note: See TracChangeset for help on using the changeset viewer.