| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
TclpFinalizeSockets() and not over the thread-exit handler,
because the order of actions the Tcl generic core will
impose may result in cores/hangs if the thread exit handler
tears down socket subsystem too early (See Tcl Bug #1437595).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclDecls.h: Regenerated from tcl.decls.
* generic/tclStubInit.c:
* doc/CrtChannel.3: Documentation of extended API,
* generic/tcl.decls: extended testsuite, and
* generic/tcl.h: implementation. Removal of old
* generic/tclIO.c: driver-specific TclpCut/Splice
* generic/tclInt.h: functions. Replaced with generic
* tests/io.test: thread-action calls through the
* unix/tclUnixChan.c: new hooks. Update of all builtin
* unix/tclUnixPipe.c: channel drivers to version 4.
* unix/tclUnixSock.c: Windows drivers extended to
* win/tclWinChan.c: manage thread state in a thread
* win/tclWinConsole.c: action handler.
* win/tclWinPipe.c:
* win/tclWinSerial.c:
* win/tclWinSock.c:
* mac/tclMacChan.c:
|
|
|
|
|
|
|
|
|
|
|
| |
(SocketThreadExitHandler): Don't call TerminateThread when
WaitForSingleObject returns a timeout. Tcl_Finalize called from
DllMain will pause all threads. Trust that the thread will get
the close notice at a later time if it does ever wake up before
being cleaned up by the system anyway.
(SocketEventProc) : connect errors should fire both the readable
and writable handlers because this is how it works on UNIX
[Bug 794839]
|
|
|
|
|
|
|
|
| |
asked for writable events by the generic layer.
(SocketEventProc): Generate a writable event too when a close is
detected.
Together the changes fix [Bug 599468].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
compiler warnings from SEH ASM code.
* win/tclWinChan.c (squelch_warnings): Squelch
compiler warnings from SEH ASM code.
* win/tclWinDde.c: Add casts to avoid compiler
warnings. Pass pointer to DWORD instead of int
to avoid compiler warnings.
* win/tclWinFCmd.c (squelch_warnings): Add casts
and fixup decls to avoid compiler warnings.
Squelch compiler warnings from SEH ASM code.
* win/tclWinFile.c: Add casts and fixup decls
to avoid compiler warnings. Remove unused variable.
* win/tclWinNotify.c: Declare as DWORD instead
of int to avoid compiler warning.
* win/tclWinReg.c: Add casts to avoid compiler
warning. Fix assignment in if expression bug.
* win/tclWinSerial.c: Add casts to avoid compiler
warnings. Remove unused variable.
* win/tclWinSock.c: Add casts and fixup decls
to avoid compiler warnings.
|
|
|
|
|
|
|
|
|
| |
* win/configure.in: Check for typedefs like LPFN_ACCEPT
in winsock2.h and define HAVE_NO_LPFN_DECLS if not found.
* win/tclWinSock.c: Define LPFN_* typedefs if
HAVE_NO_LPFN_DECLS is defined. This fixes the build
under Mingw and Cygwin, it was broken by the changes
made on 2002-11-26.
|
|
|
|
|
|
|
|
| |
that the tsdPtr is valid before dereferencing as we call it from
the exit handler, too [Bug 650353]. Another WSAStartup() loaded
version comparison byte swap issue fixed. Although 0x0101 byte
swapped is still 0x0101, properly claiming which is major/minor
is more correct.
|
|
|
|
| |
error which resulted in 2.0 looking less than 1.1.
|
|
|
|
|
| |
table as it wasn't referenced anywhere and cleaned-up some
casting that that wasn't needed.
|
|
|
|
| |
confusion.
|
| |
|
|
|
|
| |
TcpAccept() hack that has no business being in the core.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* win/tclWinSock.c: This patch does two things:
1) Cleans-up the winsock typedefs by using the typedefs
provided by winsock2.h. This has no effect on how winsock
is initialized; just makes the source code easier to read.
[Patch 561305]
2) Revamps how the socket message handler thread is brough up
and down to allows for cleaner exits without the use of
TerminateThread(). TerminateThread is evil. No attempt has
been made to resolve [Bug 593810] which may need a new
channel driver version for adding a registering function
whithin the transfered thread to init the handler thread.
IOW, initialization of the TSD structure was getting bypassed
through the thread extension's [thread::transfer] command.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* win/tclWinPipe.c:
* win/tclWinSerial.c:
* win/tclWinSock.c:
* win/tclWinThrd.c:
* win/tclWinTime.c: General cleanup of all worker threads used
by the channel drivers. Eliminates the normal case where the
worker thread is terminated ('cept the winsock one). Instead,
use kernel events to signal a clean exit. Only when the worker
thread is blocked on an I/O call is the thread terminated.
Essentially, this makes all other channel worker threads behave
like the PipeReaderThread() function for it's cleaner exit
behavior. This appears to fix [Bug 597924] but needs 3rd party
confirmation to close the issue.
|
|
|
|
|
|
| |
are not allowed to mess with the watch mask if the socket is a
server socket. I believe that the original reporter is George
Peter Staplin.
|
|
|
|
| |
Thanks to Andreas Kupries for the feedback.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
of TIP 27. Several minor documentation corrections as well.
* Updated channel driver interface according to the guidelines of
TIP 27. See also [Bug 500348].
* Moved Tcl_EolTranslation enum declaration from generic/tcl.h to
generic/tclInt.h (renamed to TclEolTranslation). It is not used
anywhere in Tcl's public interface.
|
|
|
|
|
|
| |
#478565 reported by an unknown person. Bypasses all calls to
"gethostbyaddr" for address "0.0.0.0" to prevent delays on
Win/NT.
|
| |
|
|
|
|
|
| |
readability of socket on Windows.
[Patch #410674, Bug #219205 #219333]
|
|
|
|
| |
8.4a2 code base, merged in with some existing new 8.4a2 features.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* win/tclWinChan.c:
* win/tclWinFCmd.c:
* win/tclWinInit.c:
* win/tclWinPipe.c:
* win/tclWinSock.c: removed all code that supported Win32s. It
was no longer officially supported, and likely didn't work anyway.
* win/makefile.vc: removed 16 bit stuff, cleaned up.
* win/tcl16.rc:
* win/tclWin16.c:
* win/winDumpExts.c: these files have been removed from the
source tree (no longer necessary to build)
* win/aclocal.m4: made it just include tcl.m4
|
|
|
|
|
|
| |
function. Added code to avoid calling TerminateThread(), but
instead to send a message to the socket event window to tell it to
terminate its thread.
|
|
|
|
|
|
|
|
|
|
| |
* win/Makefile.in: Fixing launching of 16-bit apps on Win9x from
wish. The command line was primed with tclpip82.dll, but it was
ignored. Fixed that, then fixed the gmake makefile to build
tclpip82.dll as an executable.
* win/tclWinSock.c: Applied small patch to get thread-specific
data after initializing the socket driver.
|
|
|
|
| |
helper threads.
|
|
|
|
| |
open issues, this code is a little more stable though.
|
|
|
|
|
| |
the semaphores for threads disabled. Fixed calling of tcltest
in Makefile.in (win32) and fixed safe-6.3 for threads enabled.
|
|
|
|
|
|
|
|
|
| |
driver to move the handling of the socket event window in a
separate thread. It also turned out that Win95 & Win98 were, in
some cases, getting multiple FD_ACCEPTs but only handling one.
Added a count for the FD_ACCEPT to take care of this. Tested on
NT4 SP3, NT4 SP4, Win95, and Win98.
[Bug: 2178 2256 2259 2329 2323 2355]
|
|
|
|
|
|
| |
because of serious problems with the new driver. Basically no
incoming socket connections would be reported to a server port.
The 8.1.1 code needs to be redesigned and fixed correctly.
|
|
|
|
|
|
| |
win/tclWinSock.c: Fixed hang in WinNT socket driver, now wakes up
the socket thread to check for events that didn't
trigger the WSAEvent.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
- Mac changes for final release
- Minor fixes to tools configure file
* win/tclWinSock.c: Apply patch to allow write access to a socket
if FD_WRITE is sent but FD_CONNECT is not. Some strange problem
with either Win32 or a socket driver. [Bug: 1664 1776]
|
| |
|
|
|
|
|
|
|
| |
* win/tclWinSock.c:
* doc/socket.n: Applied Gordon Chaffee's patch to handle failures
during asynchronous socket connection operations. This adds a new
"-error" fconfgure option to socket channels. [Bug: 893]
|
|
|
|
|
| |
sockets so they are inheritable by default. Turn off this bit so
sockets aren't kept open by exec'ed processes. [Bug: 892]
|
| |
|
|
|
|
| |
changed to completely drain the socket window before checking any state
|
|
|