Ignore:
Timestamp:
Oct 14, 1999, 7:18:58 PM (26 years ago)
Author:
phaller
Message:

Fix: threads might need more memory in debug mode

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/thread.cpp

    r956 r1294  
    1 /* $Id: thread.cpp,v 1.14 1999-09-15 23:38:02 sandervl Exp $ */
     1/* $Id: thread.cpp,v 1.15 1999-10-14 17:18:58 phaller Exp $ */
    22
    33/*
     
    1010 *
    1111 */
     12
     13/*****************************************************************************
     14 * Includes                                                                  *
     15 *****************************************************************************/
     16
     17#include <odin.h>
     18#include <odinwrap.h>
     19#include <os2sel.h>
     20
    1221#include <os2win.h>
    1322#include <stdarg.h>
     
    2130#include <except.h>
    2231
     32ODINDEBUGCHANNEL(KERNEL32-THREAD)
     33
     34
    2335static DWORD OPEN32API Win32ThreadProc(LPVOID lpData);
    2436
     
    2638//******************************************************************************
    2739//******************************************************************************
    28 HANDLE WIN32API CreateThread(LPSECURITY_ATTRIBUTES lpsa, DWORD cbStack,
    29                              LPTHREAD_START_ROUTINE lpStartAddr,
    30                              LPVOID lpvThreadParm, DWORD fdwCreate,
    31                              LPDWORD lpIDThread)
    32 {
    33  Win32Thread *winthread;
    34 
    35  winthread = new Win32Thread(lpStartAddr, lpvThreadParm, fdwCreate);
     40ODINFUNCTION6(HANDLE,CreateThread,LPSECURITY_ATTRIBUTES,  lpsa,
     41                                  DWORD,                  cbStack,
     42                                  LPTHREAD_START_ROUTINE, lpStartAddr,
     43                                  LPVOID,                 lpvThreadParm,
     44                                  DWORD,                  fdwCreate,
     45                                  LPDWORD,                lpIDThread)
     46{
     47  Win32Thread *winthread;
     48
     49  winthread = new Win32Thread(lpStartAddr, lpvThreadParm, fdwCreate);
    3650
    3751  if(winthread == 0)
    3852    return(0);
    3953
    40   dprintf(("CreateThread (%08xh,%08xh,%08xh,%08xh,%08xh,%08xh)\n",
    41            lpsa,
    42            cbStack,
    43            lpStartAddr,
    44            lpvThreadParm,
    45            fdwCreate,
    46            lpIDThread));
    47 
    48   return(O32_CreateThread(lpsa, cbStack, winthread->GetOS2Callback(), (LPVOID)winthread, fdwCreate, lpIDThread));
     54#ifdef DEBUG
     55  // @@@PH Note: with debug code enabled, ODIN might request more stack space!
     56  if (cbStack > 0)
     57     cbStack <<= 1;
     58#endif
     59
     60  return(O32_CreateThread(lpsa,
     61                          cbStack,
     62                          winthread->GetOS2Callback(),
     63                          (LPVOID)winthread,
     64                          fdwCreate,
     65                          lpIDThread));
    4966}
    5067//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.