diff options
author | kupries <kupries> | 2000-04-09 16:04:16 (GMT) |
---|---|---|
committer | kupries <kupries> | 2000-04-09 16:04:16 (GMT) |
commit | efe824c8141a780f310fc5aef29a013f53fe541c (patch) | |
tree | 939d56df2b9aea3e08214838f501affff23a3ff4 /win | |
parent | 5551a23a1a0fbd1e5febaa29157e06e883049475 (diff) | |
download | tcl-efe824c8141a780f310fc5aef29a013f53fe541c.zip tcl-efe824c8141a780f310fc5aef29a013f53fe541c.tar.gz tcl-efe824c8141a780f310fc5aef29a013f53fe541c.tar.bz2 |
2000-04-08 Andreas Kupries <a.kupries@westend.com>
* Overall change: Definition of a public API for the creation of
new threads.
* generic/tclInt.h (line 1802f): Removed the definition of
'TclpThreadCreate'. (line 793f) Removed the definition of
'Tcl_ThreadCreateProc'.
* generic/tcl.h (line 388f): Readded the definition of
'Tcl_ThreadCreateProc'. Added Win32 stuff send in by David
Graveraux <davygrvy@bigfoot.com> to that too (__stdcall,
...). Added macros for the default stacksize and allowed flags.
* generic/tcl.decls (line 1356f): Added definition of
'Tcl_CreateThread', slot 393 of the stub table. Two new
arguments in the public API, for stacksize and flags.
* win/tclWinThrd.c:
* mac/tclMacThrd.c: Renamed TclpThreadCreate to Tcl_CreateThread,
added handling of the stacksize. Flags are currently ignored.
* unix/tclUnixThrd.c: See above, but handles joinable
flag. Ignores the specified stacksize if the macro
HAVE_PTHREAD_ATTR_SETSTACKSIZE is not defined.
* generic/tclThreadTest.c (line 363): See below.
* unix/tclUnixNotfy.c (line 210): Adapted to the changes
above. Uses default stacksize and no flags now.
* unic/tcl.m4 (line 382f): Added a check for
'pthread_attr_setstacksize' to detect platforms not implementing
this feature of pthreads. If it is implemented, configure will
define the macro HAVE_PTHREAD_ATTR_SETSTACKSIZE (See
unix/tclUnixThrd.c too).
* doc/Thread.3: Added Tcl_CreateThread and its arguments to the
list of described functions. Removed stuff about not providing a
public C-API for thread-creation.
Diffstat (limited to 'win')
-rw-r--r-- | win/tclWinThrd.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/win/tclWinThrd.c b/win/tclWinThrd.c index e449731..5f430b2 100644 --- a/win/tclWinThrd.c +++ b/win/tclWinThrd.c @@ -100,7 +100,7 @@ static void FinalizeConditionEvent(ClientData data); /* *---------------------------------------------------------------------- * - * TclpThreadCreate -- + * Tcl_CreateThread -- * * This procedure creates a new thread. * @@ -115,14 +115,17 @@ static void FinalizeConditionEvent(ClientData data); */ int -TclpThreadCreate(idPtr, proc, clientData) +Tcl_CreateThread(idPtr, proc, clientData, stackSize, flags) Tcl_ThreadId *idPtr; /* Return, the ID of the thread */ Tcl_ThreadCreateProc proc; /* Main() function of the thread */ ClientData clientData; /* The one argument to Main() */ + int stackSize; /* Size of stack for the new thread */ + int flags; /* Flags controlling behaviour of + * the new thread */ { unsigned long code; - code = _beginthreadex(NULL, 0, (LPTHREAD_START_ROUTINE) proc, + code = _beginthreadex(NULL, stackSize, (LPTHREAD_START_ROUTINE) proc, (void *)clientData, 0, (unsigned *)idPtr); if (code == 0) { return TCL_ERROR; |