Remove a number of eol-spaces. No change in functionality.
This commit is contained in:
@@ -8303,11 +8303,11 @@ reported usage of large expressions (porter)
|
||||
|
||||
Many optmizations, improvements, and tightened stack management in bytecode.
|
||||
|
||||
--- Released 8.6.1, September 20, 2013 --- http://core.tcl.tk/tcl/ for details
|
||||
--- Released 8.6.1, September 20, 2013 --- http://core.tcl.tk/tcl/ for details
|
||||
|
||||
2013-09-27 (enhancement) improved ::env synchronization (fellows)
|
||||
|
||||
2013-10-20 (bug fix)[2835313] segfault from
|
||||
2013-10-20 (bug fix)[2835313] segfault from
|
||||
[apply {{} {while 1 {a {*}[return -level 0 -code continue]}}}] (fellows)
|
||||
|
||||
2013-10-22 (bug fix)[3556215] [scan %E%G%X] support (fellows)
|
||||
@@ -8451,7 +8451,7 @@ include ::oo::class (fellows)
|
||||
|
||||
2014-08-25 (TIP 429) New command [string cat] (leitgeb,ferrieux)
|
||||
|
||||
--- Released 8.6.2, August 27, 2014 --- http://core.tcl.tk/tcl/ for details
|
||||
--- Released 8.6.2, August 27, 2014 --- http://core.tcl.tk/tcl/ for details
|
||||
|
||||
2014-08-28 (bug)[b9e1a3] Correct Method Search Order (nadkarni,fellows)
|
||||
=> TclOO 1.0.3
|
||||
|
||||
+2
-2
@@ -29,7 +29,7 @@ MODIFICATIONS.
|
||||
|
||||
GOVERNMENT USE: If you are acquiring this software on behalf of the
|
||||
U.S. government, the Government shall have only "Restricted Rights"
|
||||
in the software and related documentation as defined in the Federal
|
||||
in the software and related documentation as defined in the Federal
|
||||
Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
|
||||
are acquiring the software on behalf of the Department of Defense, the
|
||||
software shall be classified as "Commercial Computer Software" and the
|
||||
@@ -37,4 +37,4 @@ Government shall have only "Restricted Rights" as defined in Clause
|
||||
252.227-7014 (b) (3) of DFARs. Notwithstanding the foregoing, the
|
||||
authors grant the U.S. Government and others acting in its behalf
|
||||
permission to use and distribute the software in accordance with the
|
||||
terms specified in this license.
|
||||
terms specified in this license.
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ dnl This file is an input file used by the GNU "autoconf" program to
|
||||
dnl generate the file "configure", which is run during Tcl installation
|
||||
dnl to configure the system for the local environment.
|
||||
|
||||
dnl Ensure that the config (auto)headers support is used, then just
|
||||
dnl Ensure that the config (auto)headers support is used, then just
|
||||
dnl include the configure sources from ../unix:
|
||||
|
||||
m4_include(../unix/aclocal.m4)
|
||||
|
||||
+2
-2
@@ -36,14 +36,14 @@ needs to conform to the following conventions.
|
||||
|
||||
clean: Delete all files generated by the default build target.
|
||||
|
||||
distclean: Delete all generated files.
|
||||
distclean: Delete all generated files.
|
||||
|
||||
dist: Produce a copy of the package's source code distribution.
|
||||
Must respect the DIST_ROOT variable determining where to
|
||||
write the generated directory.
|
||||
|
||||
Packages that are written to make use of the Tcl Extension Architecture (TEA)
|
||||
and that make use of the tclconfig collection of support files, should
|
||||
and that make use of the tclconfig collection of support files, should
|
||||
conform to these conventions without further efforts.
|
||||
|
||||
These conventions are subject to revision and refinement over time to
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
#
|
||||
# ldAix ldCmd ldArg ldArg ...
|
||||
#
|
||||
# This shell script provides a wrapper for ld under AIX in order to
|
||||
@@ -40,8 +40,8 @@ rm -f lib.exp
|
||||
echo "#! $outputFile" >lib.exp
|
||||
/usr/ccs/bin/nm $nmopts $ofiles | sed -e '/:$/d' -e '/ U /d' -e 's/^\.//' -e 's/[ |].*//' | sort | uniq >>lib.exp
|
||||
|
||||
# If we're linking a .a file, then link all the objects together into a
|
||||
# single file "shr.o" and then put that into the archive. Otherwise link
|
||||
# If we're linking a .a file, then link all the objects together into a
|
||||
# single file "shr.o" and then put that into the archive. Otherwise link
|
||||
# the object files directly into the .a file.
|
||||
|
||||
noDotA=`echo $outputFile | sed -e '/\.a$/d'`
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ CFLAGS="%optflags" ./configure \
|
||||
--prefix=%{directory} \
|
||||
--exec-prefix=%{directory} \
|
||||
--libdir=%{directory}/%{_lib}
|
||||
make
|
||||
make
|
||||
|
||||
%install
|
||||
cd unix
|
||||
|
||||
+4
-4
@@ -792,7 +792,7 @@ TtySetOptionProc(
|
||||
*
|
||||
* Results:
|
||||
* A standard Tcl result. Also sets the supplied DString to the string
|
||||
* value of the option(s) returned. Sets error message if needed
|
||||
* value of the option(s) returned. Sets error message if needed
|
||||
* (by calling Tcl_BadChannelOption).
|
||||
*
|
||||
*----------------------------------------------------------------------
|
||||
@@ -1201,7 +1201,7 @@ TtyParseMode(
|
||||
char parity;
|
||||
const char *bad = "bad value for -mode";
|
||||
|
||||
i = sscanf(mode, "%d,%c,%d,%d%n",
|
||||
i = sscanf(mode, "%d,%c,%d,%d%n",
|
||||
&ttyPtr->baud,
|
||||
&parity,
|
||||
&ttyPtr->data,
|
||||
@@ -1292,7 +1292,7 @@ TtyInit(
|
||||
|| iostate.c_lflag != 0
|
||||
|| iostate.c_cflag & CREAD
|
||||
|| iostate.c_cc[VMIN] != 1
|
||||
|| iostate.c_cc[VTIME] != 0)
|
||||
|| iostate.c_cc[VTIME] != 0)
|
||||
{
|
||||
iostate.c_iflag = IGNBRK;
|
||||
iostate.c_oflag = 0;
|
||||
@@ -1824,7 +1824,7 @@ TclUnixWaitForFile(
|
||||
if (FD_ISSET(fd, &writableMask)) {
|
||||
SET_BITS(result, TCL_WRITABLE);
|
||||
}
|
||||
if (FD_ISSET(fd, &exceptionMask)) {
|
||||
if (FD_ISSET(fd, &exceptionMask)) {
|
||||
SET_BITS(result, TCL_EXCEPTION);
|
||||
}
|
||||
result &= mask;
|
||||
|
||||
+1
-1
@@ -768,7 +768,7 @@ TclpSetVariables(
|
||||
*/
|
||||
|
||||
CFLocaleRef localeRef;
|
||||
|
||||
|
||||
if (CFLocaleCopyCurrent != NULL && CFLocaleGetIdentifier != NULL &&
|
||||
(localeRef = CFLocaleCopyCurrent())) {
|
||||
CFStringRef locale = CFLocaleGetIdentifier(localeRef);
|
||||
|
||||
+2
-2
@@ -261,7 +261,7 @@ TclpTempFileName(void)
|
||||
*
|
||||
* On Unix, it works to load a shared object from a file of any name, so this
|
||||
* function is merely a thin wrapper around TclpTempFileName().
|
||||
*
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
@@ -969,7 +969,7 @@ PipeClose2Proc(
|
||||
pipePtr->outFile = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* If half-closing, stop here.
|
||||
*/
|
||||
|
||||
+25
-25
@@ -438,11 +438,11 @@ WaitForConnect(
|
||||
/*
|
||||
* Check if an async connect is running. If not return ok
|
||||
*/
|
||||
|
||||
|
||||
if (!(statePtr->flags & TCP_ASYNC_PENDING)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
if (errorCodePtr == NULL || (statePtr->flags & TCP_NONBLOCKING)) {
|
||||
timeout = 0;
|
||||
} else {
|
||||
@@ -601,7 +601,7 @@ TcpCloseProc(
|
||||
* handlers are already deleted in the generic IO channel closing code
|
||||
* that called this function, so we do not have to delete them here.
|
||||
*/
|
||||
|
||||
|
||||
for (fds = &statePtr->fds; fds != NULL; fds = fds->next) {
|
||||
if (fds->fd < 0) {
|
||||
continue;
|
||||
@@ -610,7 +610,7 @@ TcpCloseProc(
|
||||
if (close(fds->fd) < 0) {
|
||||
errorCode = errno;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
fds = statePtr->fds.next;
|
||||
while (fds != NULL) {
|
||||
@@ -974,7 +974,7 @@ TcpWatchProc(
|
||||
*/
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (statePtr->flags & TCP_ASYNC_PENDING) {
|
||||
/* Async sockets use a FileHandler internally while connecting, so we
|
||||
* need to cache this request until the connection has succeeded. */
|
||||
@@ -1111,7 +1111,7 @@ TcpConnect(
|
||||
for (statePtr->myaddr = statePtr->myaddrlist; statePtr->myaddr != NULL;
|
||||
statePtr->myaddr = statePtr->myaddr->ai_next) {
|
||||
int reuseaddr = 1;
|
||||
|
||||
|
||||
/*
|
||||
* No need to try combinations of local and remote addresses of
|
||||
* different families.
|
||||
@@ -1141,15 +1141,15 @@ TcpConnect(
|
||||
* Set the close-on-exec flag so that the socket will not get
|
||||
* inherited by child processes.
|
||||
*/
|
||||
|
||||
|
||||
fcntl(statePtr->fds.fd, F_SETFD, FD_CLOEXEC);
|
||||
|
||||
|
||||
/*
|
||||
* Set kernel space buffering
|
||||
*/
|
||||
|
||||
|
||||
TclSockMinimumBuffers(INT2PTR(statePtr->fds.fd), SOCKET_BUFSIZE);
|
||||
|
||||
|
||||
if (async) {
|
||||
ret = TclUnixSetBlockingMode(statePtr->fds.fd,TCL_MODE_NONBLOCKING);
|
||||
if (ret < 0) {
|
||||
@@ -1160,7 +1160,7 @@ TcpConnect(
|
||||
/* Gotta reset the error variable here, before we use it for the
|
||||
* first time in this iteration. */
|
||||
error = 0;
|
||||
|
||||
|
||||
(void) setsockopt(statePtr->fds.fd, SOL_SOCKET, SO_REUSEADDR,
|
||||
(char *) &reuseaddr, sizeof(reuseaddr));
|
||||
ret = bind(statePtr->fds.fd, statePtr->myaddr->ai_addr,
|
||||
@@ -1176,7 +1176,7 @@ TcpConnect(
|
||||
* will set up a file handler on the socket if she is interested
|
||||
* in being informed when the connect completes.
|
||||
*/
|
||||
|
||||
|
||||
ret = connect(statePtr->fds.fd, statePtr->addr->ai_addr,
|
||||
statePtr->addr->ai_addrlen);
|
||||
if (ret < 0) error = errno;
|
||||
@@ -1459,28 +1459,28 @@ Tcl_OpenTcpServer(
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set the close-on-exec flag so that the socket will not get
|
||||
* inherited by child processes.
|
||||
*/
|
||||
|
||||
|
||||
fcntl(sock, F_SETFD, FD_CLOEXEC);
|
||||
|
||||
|
||||
/*
|
||||
* Set kernel space buffering
|
||||
*/
|
||||
|
||||
|
||||
TclSockMinimumBuffers(INT2PTR(sock), SOCKET_BUFSIZE);
|
||||
|
||||
|
||||
/*
|
||||
* Set up to reuse server addresses automatically and bind to the
|
||||
* specified port.
|
||||
*/
|
||||
|
||||
(void) setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
|
||||
|
||||
(void) setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
|
||||
(char *) &reuseaddr, sizeof(reuseaddr));
|
||||
|
||||
|
||||
/*
|
||||
* Make sure we use the same port number when opening two server
|
||||
* sockets for IPv4 and IPv6 on a random port.
|
||||
@@ -1509,7 +1509,7 @@ Tcl_OpenTcpServer(
|
||||
if (howfar < BIND) {
|
||||
howfar = BIND;
|
||||
my_errno = errno;
|
||||
}
|
||||
}
|
||||
close(sock);
|
||||
sock = -1;
|
||||
continue;
|
||||
@@ -1541,7 +1541,7 @@ Tcl_OpenTcpServer(
|
||||
/*
|
||||
* Allocate a new TcpState for this socket.
|
||||
*/
|
||||
|
||||
|
||||
statePtr = ckalloc(sizeof(TcpState));
|
||||
memset(statePtr, 0, sizeof(TcpState));
|
||||
statePtr->acceptProc = acceptProc;
|
||||
@@ -1556,12 +1556,12 @@ Tcl_OpenTcpServer(
|
||||
newfds->fd = sock;
|
||||
newfds->statePtr = statePtr;
|
||||
fds = newfds;
|
||||
|
||||
|
||||
/*
|
||||
* Set up the callback mechanism for accepting connections from new
|
||||
* clients.
|
||||
*/
|
||||
|
||||
|
||||
Tcl_CreateFileHandler(sock, TCL_READABLE, TcpAccept, fds);
|
||||
}
|
||||
|
||||
@@ -1620,7 +1620,7 @@ TcpAccept(
|
||||
socklen_t len; /* For accept interface */
|
||||
char channelName[SOCK_CHAN_LENGTH];
|
||||
char host[NI_MAXHOST], port[NI_MAXSERV];
|
||||
|
||||
|
||||
len = sizeof(addr);
|
||||
newsock = accept(fds->fd, &addr.sa, &len);
|
||||
if (newsock < 0) {
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@
|
||||
* See the file "license.terms" for information on usage and redistribution
|
||||
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _TCLUNIXTHRD
|
||||
#define _TCLUNIXTHRD
|
||||
|
||||
|
||||
+1
-1
@@ -199,7 +199,7 @@ TclpWideClicksToNanoseconds(
|
||||
#ifdef MAC_OSX_TCL
|
||||
static mach_timebase_info_data_t tb;
|
||||
static uint64_t maxClicksForUInt64;
|
||||
|
||||
|
||||
if (!tb.denom) {
|
||||
mach_timebase_info(&tb);
|
||||
maxClicksForUInt64 = UINT64_MAX / tb.numer;
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
# tclConfig.sh --
|
||||
#
|
||||
#
|
||||
# This shell script (for sh) is generated automatically by Tcl's
|
||||
# configure script. It will create shell variables for most of
|
||||
# the configuration options discovered by the configure script.
|
||||
|
||||
+1
-1
@@ -761,7 +761,7 @@ ConsoleInputProc(
|
||||
* by the caller. In practice this is harmless, since all writes
|
||||
* are into ChannelBuffers, and those have padding, but still
|
||||
* ought to remove this, unless some Windows wizard can give
|
||||
* a reason not to.
|
||||
* a reason not to.
|
||||
*/
|
||||
buf[count] = '\0';
|
||||
return count;
|
||||
|
||||
+1
-1
@@ -1415,7 +1415,7 @@ SerialWriterThread(
|
||||
* Opens or Reopens the serial port with the OVERLAPPED FLAG set
|
||||
*
|
||||
* Results:
|
||||
* Returns the new handle, or INVALID_HANDLE_VALUE.
|
||||
* Returns the new handle, or INVALID_HANDLE_VALUE.
|
||||
* If an existing channel is specified it is closed and reopened.
|
||||
*
|
||||
* Side effects:
|
||||
|
||||
+45
-45
@@ -596,7 +596,7 @@ WaitForConnect(
|
||||
/*
|
||||
* Check if an async connect is running. If not return ok
|
||||
*/
|
||||
|
||||
|
||||
if (!(statePtr->flags & TCP_ASYNC_CONNECT)) {
|
||||
return 0;
|
||||
}
|
||||
@@ -616,7 +616,7 @@ WaitForConnect(
|
||||
/* get statePtr lock */
|
||||
tsdPtr = TclThreadDataKeyGet(&dataKey);
|
||||
WaitForSingleObject(tsdPtr->socketListLock, INFINITE);
|
||||
|
||||
|
||||
/* Check for connect event */
|
||||
if (statePtr->readyEvents & FD_CONNECT) {
|
||||
|
||||
@@ -1250,7 +1250,7 @@ TcpGetOptionProc(
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
* Go one step in async connect
|
||||
* If any error is thrown save it as backround error to report eventually below
|
||||
*/
|
||||
@@ -1647,14 +1647,14 @@ TcpConnect(
|
||||
/* We were called by the event procedure and continue our loop */
|
||||
int async_callback = statePtr->flags & TCP_ASYNC_PENDING;
|
||||
ThreadSpecificData *tsdPtr = TclThreadDataKeyGet(&dataKey);
|
||||
|
||||
|
||||
if (async_callback) {
|
||||
goto reenter;
|
||||
}
|
||||
|
||||
|
||||
for (statePtr->addr = statePtr->addrlist; statePtr->addr != NULL;
|
||||
statePtr->addr = statePtr->addr->ai_next) {
|
||||
|
||||
|
||||
for (statePtr->myaddr = statePtr->myaddrlist; statePtr->myaddr != NULL;
|
||||
statePtr->myaddr = statePtr->myaddr->ai_next) {
|
||||
|
||||
@@ -1670,7 +1670,7 @@ TcpConnect(
|
||||
/*
|
||||
* Close the socket if it is still open from the last unsuccessful
|
||||
* iteration.
|
||||
*/
|
||||
*/
|
||||
if (statePtr->sockets->fd != INVALID_SOCKET) {
|
||||
closesocket(statePtr->sockets->fd);
|
||||
}
|
||||
@@ -1683,9 +1683,9 @@ TcpConnect(
|
||||
*/
|
||||
statePtr->notifierConnectError = 0;
|
||||
Tcl_SetErrno(0);
|
||||
|
||||
|
||||
statePtr->sockets->fd = socket(statePtr->myaddr->ai_family, SOCK_STREAM, 0);
|
||||
|
||||
|
||||
/* Free list lock */
|
||||
SetEvent(tsdPtr->socketListLock);
|
||||
|
||||
@@ -1754,7 +1754,7 @@ TcpConnect(
|
||||
* thread.
|
||||
*/
|
||||
statePtr->selectEvents |= FD_CONNECT;
|
||||
|
||||
|
||||
/*
|
||||
* Free list lock
|
||||
*/
|
||||
@@ -1768,7 +1768,7 @@ TcpConnect(
|
||||
/*
|
||||
* Attempt to connect to the remote socket.
|
||||
*/
|
||||
|
||||
|
||||
connect(statePtr->sockets->fd, statePtr->addr->ai_addr,
|
||||
statePtr->addr->ai_addrlen);
|
||||
|
||||
@@ -1809,7 +1809,7 @@ TcpConnect(
|
||||
* the FD_CONNECT asyncroneously
|
||||
*/
|
||||
tsdPtr->pendingTcpState = NULL;
|
||||
|
||||
|
||||
if (Tcl_GetErrno() == 0) {
|
||||
goto out;
|
||||
}
|
||||
@@ -1835,12 +1835,12 @@ out:
|
||||
* Set up the select mask for read/write events.
|
||||
*/
|
||||
statePtr->selectEvents = FD_READ | FD_WRITE | FD_CLOSE;
|
||||
|
||||
|
||||
/*
|
||||
* Register for interest in events in the select mask. Note that this
|
||||
* automatically places the socket into non-blocking mode.
|
||||
*/
|
||||
|
||||
|
||||
SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) SELECT,
|
||||
(LPARAM) statePtr);
|
||||
} else {
|
||||
@@ -2092,20 +2092,20 @@ Tcl_OpenTcpServer(
|
||||
TclWinConvertError((DWORD) WSAGetLastError());
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Win-NT has a misfeature that sockets are inherited in child
|
||||
* processes by default. Turn off the inherit bit.
|
||||
*/
|
||||
|
||||
|
||||
SetHandleInformation((HANDLE) sock, HANDLE_FLAG_INHERIT, 0);
|
||||
|
||||
|
||||
/*
|
||||
* Set kernel space buffering
|
||||
*/
|
||||
|
||||
|
||||
TclSockMinimumBuffers((void *)sock, TCP_BUFFER_SIZE);
|
||||
|
||||
|
||||
/*
|
||||
* Make sure we use the same port when opening two server sockets
|
||||
* for IPv4 and IPv6.
|
||||
@@ -2113,12 +2113,12 @@ Tcl_OpenTcpServer(
|
||||
* As sockaddr_in6 uses the same offset and size for the port
|
||||
* member as sockaddr_in, we can handle both through the IPv4 API.
|
||||
*/
|
||||
|
||||
|
||||
if (port == 0 && chosenport != 0) {
|
||||
((struct sockaddr_in *) addrPtr->ai_addr)->sin_port =
|
||||
htons(chosenport);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Bind to the specified port. Note that we must not call
|
||||
* setsockopt with SO_REUSEADDR because Microsoft allows addresses
|
||||
@@ -2128,7 +2128,7 @@ Tcl_OpenTcpServer(
|
||||
* set into nonblocking mode. If there is trouble, this is one
|
||||
* place to look for bugs.
|
||||
*/
|
||||
|
||||
|
||||
if (bind(sock, addrPtr->ai_addr, addrPtr->ai_addrlen)
|
||||
== SOCKET_ERROR) {
|
||||
TclWinConvertError((DWORD) WSAGetLastError());
|
||||
@@ -2138,29 +2138,29 @@ Tcl_OpenTcpServer(
|
||||
if (port == 0 && chosenport == 0) {
|
||||
address sockname;
|
||||
socklen_t namelen = sizeof(sockname);
|
||||
|
||||
|
||||
/*
|
||||
* Synchronize port numbers when binding to port 0 of multiple
|
||||
* addresses.
|
||||
*/
|
||||
|
||||
|
||||
if (getsockname(sock, &sockname.sa, &namelen) >= 0) {
|
||||
chosenport = ntohs(sockname.sa4.sin_port);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set the maximum number of pending connect requests to the max
|
||||
* value allowed on each platform (Win32 and Win32s may be
|
||||
* different, and there may be differences between TCP/IP stacks).
|
||||
*/
|
||||
|
||||
|
||||
if (listen(sock, SOMAXCONN) == SOCKET_ERROR) {
|
||||
TclWinConvertError((DWORD) WSAGetLastError());
|
||||
closesocket(sock);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if (statePtr == NULL) {
|
||||
/*
|
||||
* Add this socket to the global list of sockets.
|
||||
@@ -2186,9 +2186,9 @@ error:
|
||||
/*
|
||||
* Set up the select mask for connection request events.
|
||||
*/
|
||||
|
||||
|
||||
statePtr->selectEvents = FD_ACCEPT;
|
||||
|
||||
|
||||
/*
|
||||
* Register for interest in events in the select mask. Note that this
|
||||
* automatically places the socket into non-blocking mode.
|
||||
@@ -2652,7 +2652,7 @@ SocketEventProc(
|
||||
WaitForConnect(statePtr,NULL);
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
/*
|
||||
* No async connect reenter pending. Just clear event.
|
||||
*/
|
||||
@@ -2681,7 +2681,7 @@ SocketEventProc(
|
||||
* network stack conditions that can result in FD_ACCEPT but a subsequent
|
||||
* failure on accept() by the time we get around to it.
|
||||
* Access to sockets (acceptEventCount, readyEvents) in socketList
|
||||
* is still protected by the lock (prevents reintroduction of
|
||||
* is still protected by the lock (prevents reintroduction of
|
||||
* SF Tcl Bug 3056775.
|
||||
*/
|
||||
|
||||
@@ -2713,9 +2713,9 @@ SocketEventProc(
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Loop terminated with no sockets accepted; clear the ready mask so
|
||||
* we can detect the next connection request. Note that connection
|
||||
* requests are level triggered, so if there is a request already
|
||||
/* Loop terminated with no sockets accepted; clear the ready mask so
|
||||
* we can detect the next connection request. Note that connection
|
||||
* requests are level triggered, so if there is a request already
|
||||
* pending, a new event will be generated.
|
||||
*/
|
||||
statePtr->acceptEventCount = 0;
|
||||
@@ -2758,7 +2758,7 @@ SocketEventProc(
|
||||
if ( statePtr->flags & TCP_ASYNC_FAILED ) {
|
||||
|
||||
mask |= TCL_READABLE;
|
||||
|
||||
|
||||
} else {
|
||||
fd_set readFds;
|
||||
struct timeval timeout;
|
||||
@@ -2796,11 +2796,11 @@ SocketEventProc(
|
||||
if (events & FD_WRITE) {
|
||||
mask |= TCL_WRITABLE;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Call registered event procedures
|
||||
*/
|
||||
|
||||
|
||||
if (mask) {
|
||||
Tcl_NotifyChannel(statePtr->channel, mask);
|
||||
}
|
||||
@@ -2812,7 +2812,7 @@ SocketEventProc(
|
||||
*
|
||||
* AddSocketInfoFd --
|
||||
*
|
||||
* This function adds a SOCKET file descriptor to the 'sockets' linked
|
||||
* This function adds a SOCKET file descriptor to the 'sockets' linked
|
||||
* list of a TcpState structure.
|
||||
*
|
||||
* Results:
|
||||
@@ -2826,7 +2826,7 @@ SocketEventProc(
|
||||
|
||||
static void
|
||||
AddSocketInfoFd(
|
||||
TcpState *statePtr,
|
||||
TcpState *statePtr,
|
||||
SOCKET socket)
|
||||
{
|
||||
TcpFdList *fds = statePtr->sockets;
|
||||
@@ -2840,7 +2840,7 @@ AddSocketInfoFd(
|
||||
while ( fds->next != NULL ) {
|
||||
fds = fds->next;
|
||||
}
|
||||
|
||||
|
||||
fds->next = ckalloc(sizeof(TcpFdList));
|
||||
fds = fds->next;
|
||||
}
|
||||
@@ -2851,7 +2851,7 @@ AddSocketInfoFd(
|
||||
fds->next = NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
@@ -2935,7 +2935,7 @@ WaitForSocketEvent(
|
||||
|
||||
/* get statePtr lock */
|
||||
WaitForSingleObject(tsdPtr->socketListLock, INFINITE);
|
||||
|
||||
|
||||
/* Check if event occured */
|
||||
event_found = (statePtr->readyEvents & events);
|
||||
|
||||
@@ -2946,7 +2946,7 @@ WaitForSocketEvent(
|
||||
if (event_found) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/* Exit loop if event did not occur but this is a non-blocking channel */
|
||||
if (statePtr->flags & TCP_NONBLOCKING) {
|
||||
*errorCodePtr = EWOULDBLOCK;
|
||||
@@ -3313,11 +3313,11 @@ TcpThreadActionProc(
|
||||
WaitForSingleObject(tsdPtr->socketListLock, INFINITE);
|
||||
statePtr->nextPtr = tsdPtr->socketList;
|
||||
tsdPtr->socketList = statePtr;
|
||||
|
||||
|
||||
if (statePtr == tsdPtr->pendingTcpState) {
|
||||
tsdPtr->pendingTcpState = NULL;
|
||||
}
|
||||
|
||||
|
||||
SetEvent(tsdPtr->socketListLock);
|
||||
|
||||
notifyCmd = SELECT;
|
||||
|
||||
Reference in New Issue
Block a user