Diff
Not logged in

Differences From Artifact [5ee8b15f82]:

To Artifact [ea8864da94]:


199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
 *
 * Side effects:
 *	See the user documentation.
 *
 *----------------------------------------------------------------------
 */

	/* ARGSUSED */
static int
ThreadObjCmd(
    TCL_UNUSED(ClientData),
    Tcl_Interp *interp,		/* Current interpreter. */
    int objc,			/* Number of arguments. */
    Tcl_Obj *const objv[])	/* Argument objects. */
{







<







199
200
201
202
203
204
205

206
207
208
209
210
211
212
 *
 * Side effects:
 *	See the user documentation.
 *
 *----------------------------------------------------------------------
 */


static int
ThreadObjCmd(
    TCL_UNUSED(ClientData),
    Tcl_Interp *interp,		/* Current interpreter. */
    int objc,			/* Number of arguments. */
    Tcl_Obj *const objv[])	/* Argument objects. */
{
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
 *
 * Side effects:
 *	Create a thread.
 *
 *----------------------------------------------------------------------
 */

	/* ARGSUSED */
static int
ThreadCreate(
    Tcl_Interp *interp,		/* Current interpreter. */
    const char *script,		/* Script to execute */
    int joinable)		/* Flag, joinable thread or not */
{
    ThreadCtrl ctrl;







<







486
487
488
489
490
491
492

493
494
495
496
497
498
499
 *
 * Side effects:
 *	Create a thread.
 *
 *----------------------------------------------------------------------
 */


static int
ThreadCreate(
    Tcl_Interp *interp,		/* Current interpreter. */
    const char *script,		/* Script to execute */
    int joinable)		/* Flag, joinable thread or not */
{
    ThreadCtrl ctrl;
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
 *
 * Side effects:
 *	Clears up mem specified in clientData
 *
 *------------------------------------------------------------------------
 */

     /* ARGSUSED */
static void
ThreadFreeProc(
    void *clientData)
{
    if (clientData) {
	Tcl_Free(clientData);
    }







<







1072
1073
1074
1075
1076
1077
1078

1079
1080
1081
1082
1083
1084
1085
 *
 * Side effects:
 *	Clears up mem specified in clientData
 *
 *------------------------------------------------------------------------
 */


static void
ThreadFreeProc(
    void *clientData)
{
    if (clientData) {
	Tcl_Free(clientData);
    }
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
 *
 * Side effects:
 *	It cleans up our events in the event queue for this thread.
 *
 *------------------------------------------------------------------------
 */

     /* ARGSUSED */
static int
ThreadDeleteEvent(
    Tcl_Event *eventPtr,	/* Really ThreadEvent */
    TCL_UNUSED(ClientData))
{
    if (eventPtr->proc == ThreadEventProc) {
	Tcl_Free(((ThreadEvent *) eventPtr)->script);







<







1098
1099
1100
1101
1102
1103
1104

1105
1106
1107
1108
1109
1110
1111
 *
 * Side effects:
 *	It cleans up our events in the event queue for this thread.
 *
 *------------------------------------------------------------------------
 */


static int
ThreadDeleteEvent(
    Tcl_Event *eventPtr,	/* Really ThreadEvent */
    TCL_UNUSED(ClientData))
{
    if (eventPtr->proc == ThreadEventProc) {
	Tcl_Free(((ThreadEvent *) eventPtr)->script);
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
 * Side effects:
 *	It unblocks anyone that is waiting on a send to this thread. It cleans
 *	up any events in the event queue for this thread.
 *
 *------------------------------------------------------------------------
 */

     /* ARGSUSED */
static void
ThreadExitProc(
    void *clientData)
{
    char *threadEvalScript = (char *)clientData;
    ThreadEventResult *resultPtr, *nextPtr;
    Tcl_ThreadId self = Tcl_GetCurrentThread();







<







1133
1134
1135
1136
1137
1138
1139

1140
1141
1142
1143
1144
1145
1146
 * Side effects:
 *	It unblocks anyone that is waiting on a send to this thread. It cleans
 *	up any events in the event queue for this thread.
 *
 *------------------------------------------------------------------------
 */


static void
ThreadExitProc(
    void *clientData)
{
    char *threadEvalScript = (char *)clientData;
    ThreadEventResult *resultPtr, *nextPtr;
    Tcl_ThreadId self = Tcl_GetCurrentThread();