| Commit message (Collapse) | Author | Age | Files | Lines | 
| ...  |  | 
| | |  | 
 | 
| | | 
| | 
| | 
| |  | 
Don't check for HAVE_READDIR_R.  Regenerated configure script.
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
* 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]
 | 
| | | 
| | 
| | 
| |  | 
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.
 | 
| | |  | 
 | 
| | |  | 
 | 
| | | 
| | 
| | 
| |  | 
Also added support for [FRQ 951168] but left that switched off by default.
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
* 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.
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
* generic/tclInt.h:     Reworked the Tcl header files into a clean
        * unix/tclUnixPort.h:   hierarchy where tcl.h < tclPort.h < tclInt.h
        * win/tclWinInt.h:      and every C source file should #include
        * win/tclWinPort.h:     at most one of those files to satisfy its
        declaration needs.  tclWinInt.h and tclWinPort.h also better organized
        so that tclWinPort.h includes the Windows implementation of
        cross-platform declarations, while tclWinInt.h makes declarations that
        are available on Windows only.
        * generic/tclBinary.c (TCL_NO_MATH):    Deleted the generic/tclMath.h
        * generic/tclMath.h (removed):          header file. The internal Tcl
        * macosx/Makefile (PRIVATE_HEADERS):    header, tclInt.h, has a
        * win/tcl.dsp:                          #include <math.h> directly,
        and file external to Tcl needing libm should do the same.
        * win/Makefile.in (WIN_OBJS):   Deleted the win/tclWinMtherr.c file.
        * win/makefile.bc (TCLOBJS):    It's a vestige from matherr() days
        * win/makefile.vc (TCLOBJS):    gone by.
        * win/tcl.dsp:
        * win/tclWinMtherr.c (removed):
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| |  | 
to 'Tcl_Panic' (the function).  The #define
of panic in tcl.h clearly states it is
deprecated in the comments.
[Patch 865264]
 | 
| | |  | 
 | 
| |/   | 
 | 
| | 
| 
| 
| 
| 
|  | 
* 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]
 | 
|    | 
 |