Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Merge trunk |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | novem |
Files: | files | file ages | folders |
SHA3-256: |
97ce48e55749a01ddad687c27d07f00f |
User & Date: | jan.nijtmans 2019-05-17 12:29:28.461 |
Context
2019-06-29
| ||
21:06 | Merge trunk check-in: 0238d42a96 user: jan.nijtmans tags: novem | |
2019-05-17
| ||
12:29 | Merge trunk check-in: 97ce48e557 user: jan.nijtmans tags: novem | |
12:28 | Merge thread-2.8-branch check-in: b5278091b6 user: jan.nijtmans tags: trunk | |
2019-03-27
| ||
23:56 | Merge trunk check-in: fd7e216d1a user: jan.nijtmans tags: novem | |
Changes
Changes to doc/man/thread.n.
︙ | ︙ | |||
358 359 360 361 362 363 364 | This section describes commands for creating and destroying threads and sending scripts to threads for evaluation\&. .TP \fBthread::create\fR ?-joinable? ?-preserved? ?script? This command creates a thread that contains a Tcl interpreter\&. The Tcl interpreter either evaluates the optional \fBscript\fR, if specified, or it waits in the event loop for scripts that arrive via | | > | > | 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 | This section describes commands for creating and destroying threads and sending scripts to threads for evaluation\&. .TP \fBthread::create\fR ?-joinable? ?-preserved? ?script? This command creates a thread that contains a Tcl interpreter\&. The Tcl interpreter either evaluates the optional \fBscript\fR, if specified, or it waits in the event loop for scripts that arrive via the \fBthread::send\fR command\&. Both of them would take place simultaneously with the return of command \fBthread::create\fR to the caller thread\&. Neither the caller is waiting for the finishing of optional \fBscript\fR, nor the result, if any, of the \fBscript\fR is returned to the caller\&. The result of \fBthread::create\fR is the ID of the thread\&. This is the opaque handle which identifies the newly created thread for all other package commands\&. The handle of the thread goes out of scope automatically when thread is marked for exit (see the \fBthread::release\fR command below)\&. .sp If the optional \fBscript\fR argument contains the \fBthread::wait\fR |
︙ | ︙ |
Changes to generic/tclThreadInt.h.
︙ | ︙ | |||
125 126 127 128 129 130 131 | typedef struct { char *modname; char *server; } NsThreadInterpData; #if defined(USE_TCL_STUBS) # undef Tcl_GetUnicodeFromObj | | | < | 125 126 127 128 129 130 131 132 133 134 135 136 | typedef struct { char *modname; char *server; } NsThreadInterpData; #if defined(USE_TCL_STUBS) # undef Tcl_GetUnicodeFromObj # define Tcl_GetUnicodeFromObj ((((&(tclStubsPtr->tcl_PkgProvideEx))[378]) != ((&(tclStubsPtr->tcl_PkgProvideEx))[434])) ? \ ((void (*)(Tcl_Obj *, int *))((&(tclStubsPtr->tcl_PkgProvideEx))[434])) : ((void (*)(Tcl_Obj *, int *)) NULL)) #endif #endif /* _TCL_THREAD_INT_H_ */ |
Changes to generic/threadSvCmd.c.
︙ | ︙ | |||
39 40 41 42 43 44 45 | #define OBJS_TO_ALLOC_EACH_TIME 100 /* * Reference to Tcl object types used in object-copy code. * Those are referenced read-only, thus no mutex protection. */ | | | | | | | | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #define OBJS_TO_ALLOC_EACH_TIME 100 /* * Reference to Tcl object types used in object-copy code. * Those are referenced read-only, thus no mutex protection. */ static const Tcl_ObjType* booleanObjTypePtr = 0; static const Tcl_ObjType* byteArrayObjTypePtr = 0; static const Tcl_ObjType* doubleObjTypePtr = 0; static const Tcl_ObjType* intObjTypePtr = 0; static const Tcl_ObjType* wideIntObjTypePtr = 0; static const Tcl_ObjType* stringObjTypePtr = 0; /* * In order to be fully stub enabled, a small * hack is needed to query the tclEmptyStringRep * global symbol defined by Tcl. See Sv_Init. */ |
︙ | ︙ | |||
960 961 962 963 964 965 966 | * Sv_DuplicateObj -- * * Create and return a new object that is (mostly) a duplicate of the * argument object. We take care that the duplicate object is either * a proper object copy, i.e. w/o hidden references to original object * elements or a plain string object, i.e one w/o internal representation. * | | | 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 | * Sv_DuplicateObj -- * * Create and return a new object that is (mostly) a duplicate of the * argument object. We take care that the duplicate object is either * a proper object copy, i.e. w/o hidden references to original object * elements or a plain string object, i.e one w/o internal representation. * * Decision about whether to produce a real duplicate or a string object * is done as follows: * * 1) Scalar Tcl object types are properly copied by default; * these include: boolean, int double, string and byteArray types. * 2) Object registered with Sv_RegisterObjType are duplicated * using custom duplicator function which is guaranteed to * produce a proper deep copy of the object in question. |
︙ | ︙ | |||
2232 2233 2234 2235 2236 2237 2238 | * Get Tcl object types. These are used * in custom object duplicator function. */ obj = Tcl_NewStringObj("no", -1); Tcl_GetBooleanFromObj(NULL, obj, &i); booleanObjTypePtr = obj->typePtr; | > > > > > | | > | 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 | * Get Tcl object types. These are used * in custom object duplicator function. */ obj = Tcl_NewStringObj("no", -1); Tcl_GetBooleanFromObj(NULL, obj, &i); booleanObjTypePtr = obj->typePtr; #ifdef USE_TCL_STUBS if (Tcl_GetUnicodeFromObj) #endif { Tcl_GetUnicodeFromObj(obj, &i); stringObjTypePtr = obj->typePtr; } Tcl_GetByteArrayFromObj(obj, &i); byteArrayObjTypePtr = obj->typePtr; Tcl_DecrRefCount(obj); obj = Tcl_NewDoubleObj(0.0); doubleObjTypePtr = obj->typePtr; Tcl_DecrRefCount(obj); |
︙ | ︙ |