summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Refinements of FlushChannel() and its callers. Notably includes removal of ↵dgp2014-05-293-118/+73
|\ | | | | | | the flag BUFFER_READY.
| * Refinements of FlushChannel() and its callers. Notably includes removaldgp2014-05-283-99/+67
| |\ | | | | | | of the flag BUFFER_READY.
| | * Update comment to explain assumptions.dgp_flush_channeldgp2014-05-281-3/+10
| | |
| | * Further simplifications to FlushChannel(). This makes clear thedgp2014-05-282-81/+38
| | | | | | | | | BUFFER_READY flag serves no necessary purpose, so it is removed.
| | * Expand the IsBufferFull() macro to check non-NULL bufPtr..dgp2014-05-281-7/+10
| | |
| | * Increase size of test io-29.34 so that it more portably tests the case wheredgp2014-05-282-2/+11
| | | | | | | | | | | | the OS networking machinery gets backed up and blocks. Added several TODO comments on potential simplifications.
| | * Move code that can only matter in the first loop iteration out of the loop.dgp2014-05-271-13/+6
| |/
| * Comment out lines of test io-53.4 that appear to do nothing of any value.dgp2014-05-241-5/+5
| |
* | Merged the workarounds and fixes for wrapped executables on variousandreask2014-05-281-1/+85
|\ \ | |/ | | | | | | platforms into the trunk. For details see the merged revision and its ancestor.
| * Followup on [72c54e1659]. Removed unused variable.andreask2014-05-231-1/+0
| |
| * Workarounds and fixes for wrapped executables on various platforms andreask2014-05-221-1/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | regarding the handling of wrapped dynamic libraries. The basic flow of operation is to copy such libraries into a temp file, hand them to the OS loader for processing, and then to delete them immediately, to prevent them from being accessible to other executables. On platforms where that is not possible the library is left in place and things are arranged to delete it on regular process exit. An example of the latter are older revisions of HPUX which report that the file is busy when trying to delete it. Younger revisions of HPUX have changed to allow the deletion, but are also buggy, the OS loader mangles its data structures so that a second library loaded in this manner fails. More recently it was found that Linux which is usually ok with deleting the file and gets everything right shows the same trouble as modern HPUX when the "docker" containerization system is involved, or more specifically the AUFS in use there. Deleting the loaded library file mangles data structures and breaks loading of the following libraries. For a demonstration which does not involve Tcl at all see the ticket https://github.com/dotcloud/docker/issues/1911 in the docker tracker. This of course breaks the use of wrapped executables within docker containers. This commit introduces the function TclSkipUnlink() which centralizes the handling of such exceptions to unlinking the library after unload, and provides code handling the known cases. IOW HPUX is generally forced to not unlink, and ditto when we detect that the copied library file resides within an AUFS. The latter must however be explicitly activated by setting the define -DTCL_TEMPLOAD_NO_UNLINK during build. We still need proper configure tests to set it on the relevant platforms (i.e. Linux). The AUFS detection and handling can be overridden by the environment variable TCL_TEMPLOAD_NO_UNLINK which can force the behaviour either way (skip or not). In case the user knows best, or wishes to test if the problem with AUFS has been fixed.
* | eliminate two unused variables.jan.nijtmans2014-05-231-2/+0
| |
* | Ditto [dict append], [dict incr], and [dict lappend]. Update description of ↵andy2014-05-211-4/+7
| | | | | | | | [dict create] to explicitly state that it returns the new dictionary.
* | Ditto [dict unset].andy2014-05-211-1/+2
| |
* | Update dict man page to state that [dict set] returns the updated dictionary ↵andy2014-05-211-1/+1
| | | | | | | | value.
* | Fix gcc warning (signed-unsigned compare)jan.nijtmans2014-05-211-1/+1
| |
* | Fix c&p errors in test descriptionsmax2014-05-211-4/+4
| |
| |
| \
*-. \ Rework the management of the CHANNEL_BLOCKED and CHANNEL_EOF flags, in ↵dgp2014-05-207-239/+196
|\ \ \ | | |/ | | | | | | particular not allowing them to leak between multiple layers of a stacked channel. Much common code refactored into ChanRead().
| | * Rework the management of the CHANNEL_BLOCKED and CHANNEL_EOF flags, indgp2014-05-204-161/+172
| | |\ | | | | | | | | | | | | particular not allowing them to leak between multiple layers of a stacked channel. Much common code refactored into ChanRead().
| | | * Simplify the inputProc of [testchannel transform].dgp_channel_flag_repairdgp2014-05-171-21/+18
| | | |
| | | * Repair broken tests iogt-2.[123].dgp2014-05-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | What happened is that now that EOF flags no loger leak acros channel stack layers, an EOF in the bottom channel isn't detected in the top one until the ChanRead call at the top level actually returns 0 bytes. This causes one more query/ma
| | | * Improved use of EOF state to avoid worthless allocations.dgp2014-05-161-10/+12
| | | |
| | | * Move the resets and testings of the BLOCKED flag to where they make more sense.dgp2014-05-161-22/+17
| | | |
| | | * merge 8.5dgp2014-05-165-11/+186
| | | |\ | | | |/ | | |/|
| | | * Push the setting and clearing of CHANNEL_BLOCKED flag to the more innerdgp2014-05-151-11/+12
| | | | | | | | | | | | parts of the channel read machinery.
| | | * merge 8.5dgp2014-05-141-0/+3
| | | |\
| * | | | Same improvements to the zlib transform operations.dgp_trunk_flag_repairdgp2014-05-191-40/+5
| | | | |
| * | | | Simplify ReflectInput(). Also stop intruding on channel internals withdgp2014-05-191-36/+16
| | | | | | | | | | | | | | | direct clearing of CHANNEL_EOF flag.
| * | | | Simplify the inputProc of [testchannel transform].dgp2014-05-171-23/+18
| | | | |
| * | | | Revise results of tests iogt-2.[123] to account for EOF flags nodgp2014-05-171-0/+3
| | | | | | | | | | | | | | | longer leaking across channel stacks.
| * | | | Merge flag changes. - Wow, no trouble with [chan push] demonstrated.dgp2014-05-161-39/+37
| | | | |
| * | | | merge trunkdgp2014-05-163-15/+121
| |\ \ \ \
| * \ \ \ \ merge trunkdgp2014-05-141-0/+3
| |\ \ \ \ \
| * \ \ \ \ \ Refactored much management of the BLOCKED and EOF flags into ChanRead() thendgp2014-05-133-102/+119
| |\ \ \ \ \ \ | | | |_|_|/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | began repairing some of the logic about them. Tests iogt-2.* now fail because they've been crafted as experiments recording the fine detail of reflected channel driver calls, and fixing the management of channel flags is changing that. zlib-8.5 also needed adjustment to reflect that an EOF set must come with an empty string read when flags are functioning properly.
| | * | | | | Rework Tcl_ReadRaw() mostly taking things out of the loop that never repeat.dgp2014-05-131-36/+20
| | | | | | |
| | * | | | | Salvaged what was left of value in the dgp-read-bytes-detour branch.dgp2014-05-132-81/+111
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactored much management of the BLOCKED and EOF flags into ChanRead() then began repairing some of the logic about them. Tests iogt-2.* now fail because they've been crafted as experiments recording the fine detail of reflected channel driver calls, and fixing the management of channel flags is changing that.
| | | * | | | | missing declarationdgp_read_bytes_detourdgp2014-03-211-0/+1
| | | | | | | |
| | | * | | | | Correct namespace bugs in normally skipped tests.dgp2014-03-211-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | Constrain them as "knownBug" rather than "unknownFailure".
| | | * | | | | Added comment explaining the "knownBug"dgp2014-03-211-0/+9
| | | | | | | |
| | | * | | | | Convert "impossible" test to a "knownBug" test. Exposes a segfault!dgp2014-03-211-4/+5
| | | | | | | |
| | | * | | | | Restore default suppression of large file test.dgp2014-03-211-1/+1
| | | | | | | |
| | | * | | | | Fixup ChanRead() header. Note (dstSize > 0) precondition.dgp2014-03-211-2/+8
| | | | | | | |
| | | * | | | | io-34.21 - fix bugs in normally skipped test.dgp2014-03-211-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | io-35.18b - knownBug is not buggy on this branch.
| | | * | | | | Documentation header for ChanRead()dgp2014-03-211-2/+23
| | | | | | | |
| | | * | | | | Both callers of ChanRead() have simlar epilogs. Shift that into ChanReaddgp2014-03-201-73/+50
| | | | | | | | | | | | | | | | | | | | | | | | and refactor.
* | | | | | | | Fix and improve socket -async [13d3af3ad5] oehhar2014-05-203-1601/+2619
|\ \ \ \ \ \ \ \
| * | | | | | | | * Give clearer names to some of the state flags and sync them with ↵bug_13d3af3ad5max2014-04-082-41/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows where it makes sense. * Rework WaitForConnect once more to always report ENOTCONN on I/O operations on failed async sockets. * Fix synchronous connections to a server that only listens on IPv6 (or whatever comes later in the list returned by getaddrinfo(), socket-15.*) * Fix spurious writable event on async sockets (socket-14.15).
| * | | | | | | | Beautify check for async connect reentryoehhar2014-04-081-4/+10
| | | | | | | | |
| * | | | | | | | Changed error report logic, that an async connect error is only reported by ↵oehhar2014-04-083-58/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'fconfigure -error' and not by a possible last command terminating the async connect. The terminating command always returns "socket is not connected" on connect error. In addition, some flags were renamed: TCP_ASYNC_SOCKET to TCP_NONBLOCKING and also the new state flags.
| * | | | | | | | Rename error to connectError in struct TcpState.max2014-04-071-11/+11
| | | | | | | | |