summaryrefslogtreecommitdiffstats
path: root/win/tclWinThrd.c
diff options
context:
space:
mode:
authorkupries <kupries>2000-04-09 16:04:16 (GMT)
committerkupries <kupries>2000-04-09 16:04:16 (GMT)
commitefe824c8141a780f310fc5aef29a013f53fe541c (patch)
tree939d56df2b9aea3e08214838f501affff23a3ff4 /win/tclWinThrd.c
parent5551a23a1a0fbd1e5febaa29157e06e883049475 (diff)
downloadtcl-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/tclWinThrd.c')
-rw-r--r--win/tclWinThrd.c9
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;