| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
pthread_join exit return code storage. [Bug 1712723]
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* unix/tclUnixPort.h: any use of readdir_r as it is not
* unix/tclUnixThrd.c: necessary and just confuses things.
|
|
|
|
|
|
| |
with NULL argument. This is a signal for it to clean up
the tsd key associated with the threading allocator.
Part of fixing the Tcl Bug #1178445.
|
|
|
|
|
|
|
|
|
| |
* unix/tcl.m4 (SC_ENABLE_THREADS): Check for a 2
argument version of readdir_r that is known to
exists under IRIX 5.3.
* unix/tclUnixThrd.c (TclpReaddir): Use either
2 arg or 3 arg version of readdir_r.
[Bug 1001325]
|
|
|
|
|
|
|
| |
* generic/tclThreadAlloc.c: threaded debug build on Windows
* win/tclWinThrd.c: now works again. Had to touch Unix
* unix/tclUnixThrd.c: as well. Basic patch by Kevin, with
modifications by myself.
|
|
|
|
| |
systems (Cray). Thanks to Rob Ratcliff for reporting the bug.
|
|
|
|
|
|
|
| |
* generic/tclInt.h: fully cleanup on exit and allow for
* generic/tclThreadAlloc.c: reinitialization. [Bug #736426]
* unix/tclUnixThrd.c: (mistachkin, kenny)
* win/tclWinThrd.c:
|
|
|
|
|
| |
Mistachkin's patch for [Tcl SF Bug 99453], closing leakage of
mutexes. They were not destroyed properly upon finalization.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclInt.decls: Promoted TclpLocaltime and TclpGmtime
* generic/tclIntDecls.h: from Unix-specific stubs to the generic
* generic/tclIntPlatDecls.h: internal Stubs table. Reran 'genstubs'
* generic/tclStubInit.c:
* unix/tclUnixPort.h:
* generic/tclClock.c: Changed a buggy 'GMT' timezone specification
to the correct 'GMT0'. [Bug #922848]
* unix/tclUnixThrd.c: Moved TclpGmtime and TclpLocaltime to
unix/tclUnixTime.c where they belong.
* unix/tclUnixTime.c (TclpGmtime, TclpLocaltime, TclpGetTimeZone,
ThreadSafeGMTime [removed],
ThreadSafeLocalTime [removed],
SetTZIfNecessary, CleanupMemory):
Restructured to make sure that the same mutex protects
all calls to localtime, gmtime, and tzset. Added a check
in front of those calls to make sure that the TZ env var
hasn't changed since the last call to tzset, and repeat
tzset if necessary. [Bug #942078] Removed a buggy test
of the Daylight Saving Time information in 'gettimeofday'
in favor of applying 'localtime' to a known value.
[Bug #922848]
* tests/clock.test (clock-3.14): Added test to make sure that
changes to $env(TZ) take effect immediately.
* win/tclWinTime.c (TclpLocaltime, TclpGmtime):
Added porting layer for 'localtime' and 'gmtime' calls.
|
|
|
|
|
|
|
|
|
| |
* generic/tclThread.c:
* generic/tclEvent.c:
* unix/tclUnixThrd.c:
* win/tclWinThrd.c: Provisions made so masterLock, initLock,
allocLock and joinLock mutexes can be recovered during
Tcl_Finalize.
|
| |
|
| |
|
|
|
|
|
|
| |
* unix/tclUnixPort.h: update to Bug 689100 patch to ensure that
there is a defined value of MAXNAMLEN (aka NAME_MAX in POSIX) and
that we have some buffer allocated.
|
|
|
|
| |
tsd to NAME_MAX instead of PATH_MAX. [Bug #689100] (waters)
|
|
|
|
|
|
|
|
|
|
|
| |
* unix/tclUnixThrd.c: Added stubs and implementations for
non-threaded build for the tclUnixThrd.c procs TclpReaddir,
TclpLocaltime, TclpGmtime and TclpInetNtoa.
Fixes link errors in stubbed & threaded extensions that include
tclUnixPort.h and use any of the procs readdir, localtime,
gmtime or inet_ntoa (e.g. TclX 8.4) [Bug 589526]
* generic/tclIntPlatDecls.h:
* generic/tclStubInit.c: Regen.
|
|
|
|
| |
names were really badly chosen. Also prevented a double-#def.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
added mutex wrapped calls to readdir, localtime & gmtime in
case their thread-safe *_r counterparts are not available.
* unix/tcl.m4: added configure check for readdir_r
* unix/tcl.m4 (Darwin): set TCL_DEFAULT_ENCODING to utf-8 on
MacOSX (where posix file apis expect utf-8, not iso8859-1).
* unix/configure: regen
* unix/Makefile.in: set DYLD_LIBRARY_PATH in parallel
to LD_LIBRARY_PATH for MacOSX dynamic linker.
* generic/tclEnv.c (TclSetEnv): fix env var setting on
MacOSX (adapted from patch #524352 by jkbonfield).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclInt.h:
* generic/tclThreadAlloc.c (new):
* unix/Makefile.in:
* unix/tclUnixThrd.c:
* win/Makefile.in:
* win/tclWinInt.h:
* win/tclWinThrd.c: added new threaded allocator contributed by
AOL that significantly reduces lock contention when multiple
threads are in use. Only Windows and Unix implementations are
ready, and the Windows one may need work. It is only used by
default on Unix for now, and requires that USE_THREAD_ALLOC be
defined (--enable-threads on Unix will define this).
|
|
|
|
|
| |
This version builds clean on Solaris/SPARC, with GCC and CC, both with and
without threads and both in 32-bit and 64-bit mode.
|
|
|
|
|
| |
* unix/tclUnixThrd.c: added thread-safe versions of readdir,
localtime, gmtime and inet_ntoa for threaded build. (jgdavidson)
|
|
|
|
| |
This deprecates TclpGetTime in favor of new Tcl_GetTime.
|
|
|
|
|
| |
timeout for threads (corrects excessive CPU usage issue for Tk on
Unix in threaded Tcl environment). (ruppert) [Bug #411603]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Overall changes:
(1) Implementation of joinable threads for all platforms.
(2) Additional API's for channels. Required to allow the
thread extension to move channels between threads.
* generic/tcl.decls (lines 1360f): Added Tcl_JoinThread,
Tcl_IsChannelShared, Tcl_IsChannelRegistered, Tcl_CutChannel,
Tcl_SpliceChannel, Tcl_IsChannelExisting and
Tcl_ClearChannelHandlers (slots 394 to 400).
* generic/tclIO.c: Implemented Tcl_IsChannelRegistered,
Tcl_IsChannelShared, Tcl_CutChannel, Tcl_SpliceChannel,
Tcl_IsChannelExisting and Tcl_ClearChannelHandlers.
Tcl_CutChannel uses code from CloseChannel. Replaced this code
by a call to Tcl_CutChannel. Replaced several code fragments
adding channels to the channel list with calls to
Tcl_SpliceChannel. Removed now unused variables from
CloseChannel and Tcl_UnstackChannel. Tcl_ClearChannelHandlers
uses code from Tcl_Close. Replaced this code by a call to
Tcl_ClearChannelHandlers. Removed now unused variables from
Tcl_Close. Added the subcommands 'cut', 'forgetch', 'splice' and
'isshared' to the test code
(TclTestChannelCmd).
* unix/tclUnixThread.c: Implemented Tcl_JoinThread using the
pthread-functionality.
* win/tclWinThrd.c: Fixed several small typos in comments.
Implemented Tcl_JoinThread using a platform independent
emulation layer (see generic/tclThreadJoin.c below). Added
'joinLock' to serialize Tcl_CreateThread and TclpExitThread to
prevent a race for joinable threads.
* mac/tclMacThrd.c: Implemented Tcl_JoinThread using a platform
independent emulation layer (see generic/tclThreadJoin.c
below). Due to the cooperative nature of threading on this
platform the race mentioned above is not present.
* generic/tclThreadJoin.c: New file. Contains a platform
independent emulation layer helping in the implementation of
joinable threads for the win and mac platforms.
* generic/tclInt.h: Added declarations for TclJoinThread,
TclRememberJoinableThread and TclSignalExitThread. These
procedures define the API of the emulation layer for joinable
threads (see generic/tclThreadJoin.c above).
* win/Makefile.in:
* win/makefile.vc: Added generic/tclTheadJoin.o to the rules.
* mac/: I don't know to which file generic/tclTheadJoin.o has to
be added to so that it compiles. Sorry.
* unix/tclUnixChan.c: #ifdef'd the thread-local list of file
channels as it prevents us from transfering channels. To restore
this we may need an extended interface to drivers in the
future. Target: 9.0. Found while testing the new transfer of
channels. The information in this list for a channel was left
behind and then crashed the system during finalization.
* generic/tclThreadTest.c: Added -joinable flag to 'testthread
create'. Added subcommand 'testthread join'.
* doc/CrtChannel.3: Added documentation for Tcl_IsChannelRegistered,
Tcl_IsChannelShared, Tcl_CutChannel, Tcl_SpliceChannel,
Tcl_IsChannelExisting and Tcl_ClearChannelHandlers.
* doc/Thread.3: Added documentation for Tcl_JoinThread.
* tests/thread.test: Added tests for joining of threads.
|
|
|
|
| |
[Bug: 5254]
|
|
|
|
|
|
|
| |
added write of 'q' into triggerPipe for notifier in threaded case,
so that Tcl doesn't hang when children are still running [Bug: 4139]
* unix/tclUnixThrd.c (Tcl_MutexLock): minor comment fixes.
|
| |
|
|
|
|
|
|
| |
inside of func as it is declared for non-threads builds as well.
In the non-threads case, it always returns TCL_ERROR (couldn't
create thread).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* unix/tclUnixFCmd.c: added support for symbolic permissions
setting in SetPermissionsAttribute (file attr $file -perm ...)
[Bug: 3970]
* tests/expr.test:
* unix/Makefile.in:
* unix/configure.in:
* unix/tcl.m4: strtod bug on Tru64 [Bug: 3378]
and added tests to prevent unnecessary chmod +x in sources while
installing, as well as more intelligent setsockopt/gethostbyname
checks [Bug: 3366, 3389]
* unix/tclUnixThrd.c: added compile time support (through use of
the TCL_THREAD_STACK_MIN define) for increasing the default stack
size for a thread. [Bug: 3797, 1966]
|
| |
|
| |
|
|
|
|
|
|
|
| |
Patch from James Dennett. [Bug: 2450]
* tests/info.test: Enable test for tclParse.c change (info
complete).
|
|
|
|
| |
thread attributes were not being released. [Bug: 2254]
|
|
|