Changeset 10953


Ignore:
Timestamp:
Oct 3, 2008, 5:13:04 PM (11 years ago)
Author:
gb
Message:

In Windows raise_thread_interrupt, setup call to interrupt_handler for
Win32.

File:
1 edited

Legend:

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

    r10933 r10953  
    132132    *(((LispObj *)icontext)-1) = (LispObj)raise_thread_interrupt;
    133133#else
    134 #warning need interrupt setup for win32
    135 #endif
     134    {
     135      LispObj *p = (LispObj *)icontext;
     136      p -= 4;
     137      p[0] = SIGNAL_FOR_PROCESS_INTERRUPT;
     138      p[1] = 0;
     139      p[2] = (DWORD)icontext;
     140      *(--p) = (LispObj)raise_thread_interrupt;;
     141      xpGPR(pcontext,Isp) = (DWORD)p;
     142#ifdef WIN32_ES_HACK
     143      pcontext->SegEs = pcontext->SegDs;
     144#endif
     145    }
     146#endif
     147    pcontext->EFlags &= ~0x400;  /* clear direction flag */
    136148    xpPC(pcontext) = (LispObj)interrupt_handler;
    137149    SetThreadContext(hthread,pcontext);
     
    659671  void *signal = new_semaphore(0);
    660672#endif
    661 
    662673  if (p) {
    663674    m = (RECURSIVE_LOCK) ((((natural)p)+cache_block_size-1) & (~(cache_block_size-1)));
Note: See TracChangeset for help on using the changeset viewer.