summaryrefslogtreecommitdiffstats
path: root/generic/tclThreadTest.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2013-01-02 14:59:21 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2013-01-02 14:59:21 (GMT)
commite42dd00e9836c6252fccd12da751140385e6bff5 (patch)
tree2848781d5991add1cccbc0f72cd9d0b019d11422 /generic/tclThreadTest.c
parent3e6987856502d7a1c873cfa9de0abc2b09924476 (diff)
parent6797693d1b7937f21a454ba36b083a36891ee718 (diff)
downloadtcl-e42dd00e9836c6252fccd12da751140385e6bff5.zip
tcl-e42dd00e9836c6252fccd12da751140385e6bff5.tar.gz
tcl-e42dd00e9836c6252fccd12da751140385e6bff5.tar.bz2
merge novem
Diffstat (limited to 'generic/tclThreadTest.c')
-rw-r--r--generic/tclThreadTest.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/generic/tclThreadTest.c b/generic/tclThreadTest.c
index b1085bb..e718d34 100644
--- a/generic/tclThreadTest.c
+++ b/generic/tclThreadTest.c
@@ -61,8 +61,8 @@ static ThreadSpecificData *threadList = NULL;
* "thread create" Tcl command or the ThreadCreate() C function.
*/
-typedef struct {
- char *script; /* The Tcl command this thread should
+typedef struct ThreadCtrl {
+ const char *script; /* The Tcl command this thread should
* execute */
int flags; /* Initial value of the "flags" field in the
* ThreadSpecificData structure for the new
@@ -122,7 +122,7 @@ TCL_DECLARE_MUTEX(threadMutex)
static int ThreadObjCmd(ClientData clientData,
Tcl_Interp *interp, int objc,
Tcl_Obj *const objv[]);
-static int ThreadCreate(Tcl_Interp *interp, char *script,
+static int ThreadCreate(Tcl_Interp *interp, const char *script,
int joinable);
static int ThreadList(Tcl_Interp *interp);
static int ThreadSend(Tcl_Interp *interp, Tcl_ThreadId id,
@@ -229,8 +229,8 @@ ThreadObjCmd(
Tcl_WrongNumArgs(interp, 1, objv, "option ?arg ...?");
return TCL_ERROR;
}
- if (Tcl_GetIndexFromObj(interp, objv[1], threadOptions, "option", 0,
- &option) != TCL_OK) {
+ if (Tcl_GetIndexFromObjStruct(interp, objv[1], threadOptions,
+ sizeof(char *), "option", 0, &option) != TCL_OK) {
return TCL_ERROR;
}
@@ -276,7 +276,7 @@ ThreadObjCmd(
return ThreadCancel(interp, (Tcl_ThreadId) (size_t) id, result, flags);
}
case THREAD_CREATE: {
- char *script;
+ const char *script;
int joinable, len;
if (objc == 2) {
@@ -496,7 +496,7 @@ ThreadObjCmd(
static int
ThreadCreate(
Tcl_Interp *interp, /* Current interpreter. */
- char *script, /* Script to execute */
+ const char *script, /* Script to execute */
int joinable) /* Flag, joinable thread or not */
{
ThreadCtrl ctrl;
@@ -513,7 +513,6 @@ ThreadCreate(
TCL_THREAD_STACK_DEFAULT, joinable) != TCL_OK) {
Tcl_MutexUnlock(&threadMutex);
Tcl_AppendResult(interp, "can't create a new thread", NULL);
- ckfree(ctrl.script);
return TCL_ERROR;
}