| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
directory CONST poisoned. These changes should fix that.
|
|
|
|
|
|
|
|
|
|
|
| |
the internal platform specific stub table.
* win/tclWinFile.c (TclpObjStat): Now added the call to
'TclWinFlushDirtyChannels' to this function. I don't know where
my head was last thursday (2001-09-06), but the call was
actually added to 'TclpObjChdir', i.e. the implementation of
[cd]. Corrected this now. Thanks to Vince Darley for spotting
this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
80x performance hit for file I/O on Win* systems. On my system
it was closer to a 120x hit. Problem report by Uwe Traum <no
email address available>.
The fix goes like this: The obstacle is 'FlushFileBuffers',
executed whenever Tcl writes data to the OS, as Tcl has to wait
for the disk to complete I/O, and disks are slow. We remove that
obstacle. This opens another problem, [file size] reports back
wrong numbers. So for [file size] we add the call back in. As
optimization we keep track of the channels which were written to
and flush only these.
* win/tclWinFile.c (TclpObjStat): Added a call to
'TclWinFlushDirtyChannels'. This ensures that [file size] and
related commands report the correct size of a file even if Tcl
has recently written to it. Unixoid OS's always report the
correct size even for files with pending data, but Win*
syssystem don't. They only report what is actually on disk.
* win/tclWinInt.h: Added declaration of
'TclWinFlushDirtyChannels', making it available to other parts
of the tcl core.
* win/tclWinChan.c (TclWinFlushDirtyChannels): New, internal,
procedure. Goes through the list of open file channels and
forces the OS to flush its file buffers for all which were
written to since the last call of this function. This is an
expensive operation as Tcl has to wait for the OS to complete
actual writes to the disk.
(FileInfo): Added dirty flag required by the procedure above.
(FileOutputProc): Removed flushing of file buffers, setting the
dirty flag instead. This means that the previously incurred
delays do not happen anymore.
(TclWinOpenFileChannel): Added initialization of 'dirty' flag.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following files were impacted.
* doc/Access.3:
* doc/FileSystem.3:
* doc/OpenFileChnl.3:
* doc/file.n:
* doc/glob.n:
* generic/tcl.decls:
* generic/tcl.h:
* generic/tclCmdAH.c:
* generic/tclCmdIL.c:
* generic/tclCmdMZ.c:
* generic/tclDate.c:
* generic/tclDecls.h:
* generic/tclEncoding.c:
* generic/tclFCmd.c:
* generic/tclFileName.c:
* generic/tclGetDate.y:
* generic/tclIO.c:
* generic/tclIOCmd.c:
* generic/tclIOUtil.c:
* generic/tclInt.decls:
* generic/tclInt.h:
* generic/tclIntDecls.h:
* generic/tclLoad.c:
* generic/tclStubInit.c:
* generic/tclTest.c:
* generic/tclUtil.c:
* library/init.tcl:
* mac/tclMacFCmd.c:
* mac/tclMacFile.c:
* mac/tclMacInit.c:
* mac/tclMacPort.h:
* mac/tclMacResource.c:
* mac/tclMacTime.c:
* tests/cmdAH.test:
* tests/event.test:
* tests/fCmd.test:
* tests/fileName.test:
* tests/io.test:
* tests/ioCmd.test:
* tests/proc-old.test:
* tests/registry.test:
* tests/unixFCmd.test:
* tests/winDde.test:
* tests/winFCmd.test:
* unix/mkLinks:
* unix/tclUnixFCmd.c:
* unix/tclUnixFile.c:
* unix/tclUnixInit.c:
* unix/tclUnixPipe.c:
* win/tclWinFCmd.c:
* win/tclWinFile.c:
* win/tclWinInit.c:
* win/tclWinPipe.c
|
|
|
|
|
| |
for the TclpReadlink function. This method implements reading of
symbolic links when build with Cygwin.
|
|
|
|
|
|
| |
* win/tclWinFile.c (TclpMatchFilesTypes): NULL was being set to
"attr" which was a DWORD. Changed NULL to zero because a 'void *'
can't be set to a DWORD to avoid the compiler warning.
|
|
|
|
|
| |
occur when necessary (for 'glob' command). Significantly speeds
up glob command from 8.3. [BUG: 6216]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tests/fileName.test:
* generic/tclInt.decls:
* generic/tclInt.h:
* generic/tclIntDecls.h:
* generic/tclStubInit.c:
* generic/tclEncoding.c:
* generic/tclFileName.c:
* mac/tclMacFile.c:
* unix/tclUnixFile.c:
* win/tclWinFile.c: enhanced the glob command with the new options
-types -path -directory and -join. Deprecated TclpMatchFiles with
TclpMatchFilesTypes, extended TclGlob and TclDoGlob and added
GlobTypeData structure.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|