summaryrefslogtreecommitdiffstats
path: root/generic/tclIO.c
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | | | | | | Fix the panic in iogt-2.5.dgp2014-05-081-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Back in 2011, Bugs 3384654 and 3393276 first noticed troubles with ChannelBuffer sharing, but the magnitude of the problem wasn't truly grasped. A fix was applied that turned out to be more of a band-aid workaround. Now that the real fix is in place, the band-aid is actually preventing it working properly in thie case. Rip it off!
| * | | | | | | | | | | | Revert the iogt-2.5 fix. For now one panic is better than widespreaddgp2014-05-081-4/+1
| | |_|_|_|_|_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | memory leaks.
| * | | | | | | | | | | Merge 8.5.dgp2014-05-081-0/+5
| |\ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | Symptom relief. Make test stop panicking.dgp2014-05-061-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is not the proper final answer. ChannelBuffer management in FlushChannel is simply not robustly correct yet.
| * | | | | | | | | | | | Add Panic call to better identify where iogt-2.5 goes wrong.dgp2014-05-061-0/+3
| | |_|_|_|_|_|/ / / / / | |/| | | | | | | | | |
* | | | | | | | | | | | Refinements of FlushChannel() and its callers. Notably includes removaldgp2014-05-281-92/+65
|\ \ \ \ \ \ \ \ \ \ \ \ | |_|_|_|_|_|_|_|_|_|_|/ |/| | | | | | | | | | | 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-281-76/+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-281-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
|/ / / / / / / / / / /
* | | | | | | | | | | Rework the management of the CHANNEL_BLOCKED and CHANNEL_EOF flags, indgp2014-05-201-138/+137
|\ \ \ \ \ \ \ \ \ \ \ | |_|_|_|_|_|_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | particular not allowing them to leak between multiple layers of a stacked channel. Much common code refactored into ChanRead().
| * | | | | | | | | | 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-161-9/+37
| |\ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / |/| | | | | | | | | |
* | | | | | | | | | | merge 8.5bug_io_32_11dgp2014-05-161-1/+0
|\ \ \ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|_|_|/ / | |/| | | | | | | | |
* | | | | | | | | | | Merge completion of dgp-read-bytes branch.dgp2014-05-161-912/+544
|\ \ \ \ \ \ \ \ \ \ \
* | | | | | | | | | | | Bug fix - accept consumption of the trailing newline in crlf with nodgp2014-05-161-9/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | characters produced. Also delete false assertions.
| | | * | | | | | | | | Push the setting and clearing of CHANNEL_BLOCKED flag to the more innerdgp2014-05-151-11/+12
| | | | |_|_|_|_|_|_|/ | | | |/| | | | | | | | | | | | | | | | | | parts of the channel read machinery.
| | | * | | | | | | | 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-131-79/+97
| | | |\ \ \ \ \ \ \ \ | | |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | | | | | | | | | |
| | | * | | | | | | | Fixup ChanRead() header. Note (dstSize > 0) precondition.dgp2014-03-211-2/+8
| | | | | | | | | | |
| | | * | | | | | | | 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.
| | * | | | | | | | Merge the reforms of dgp-read-bytes branch into 8.5+ releases.dgp2014-05-081-826/+557
| | |\ \ \ \ \ \ \ \ | | |/ / / / / / / / | |/| | | / / / / / | | | |_|/ / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Large overhaul of I/O read operations - Protects integer overflow of buffers, reusing append machinery - Forces -buffersize changes to take place when commanded - Uses assertions to simplify code in "can't happen" situations - Eliminated duplication of -translation processing - Fixes bugs io-35.18b and io-35.20
| * | | | | | | | Merge 8.5.dgp_read_bytesdgp2014-05-081-0/+5
| |\ \ \ \ \ \ \ \ | | |/ / / / / / /
| | * | | | | | | Stop leak in iocmd-21.22.dgp2014-05-081-0/+1
| | | | | | | | |
| | * | | | | | | Stop leak in io-53.5.dgp2014-05-071-0/+1
| | | | | | | | |
| | * | | | | | | Stop memory leak in io-29.34dgp2014-05-061-0/+2
| | | | | | | | |
| | * | | | | | | Stop memory leak in io-29.27.dgp2014-05-061-0/+1
| | | | | | | | |
| * | | | | | | | Merge GotFlag() backport from 8.5. Conflicts galore!dgp2014-05-051-90/+82
| |\ \ \ \ \ \ \ \ | | |/ / / / / / /
| | * | | | | | | Backport "GotFlag" macro from Tcl 8.6. Makes code more readable. No change ↵jan.nijtmans2014-05-051-97/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in functionality.
| * | | | | | | | merge 8.5dgp2014-05-021-2/+59
| |\ \ \ \ \ \ \ \ | | |/ / / / / / /
| | * | | | | | | Backport channel self restacking support. (Test iogt-2.4).dgp2014-05-021-2/+59
| | |\ \ \ \ \ \ \ | | | | |/ / / / / | | | |/| | | | |
| | | * | | | | | Add some comments about possible other self-restacking troubles.dgp2014-05-021-1/+8
| | | | | | | | |
| | | * | | | | | Fully restore topChan resetting to accommodate self-restacking channels.dgp2014-05-021-17/+26
| | | | | | | | |
| | | * | | | | | Re-enable buffer recycling.dgp2014-05-021-1/+1
| | | | | | | | |
| | | * | | | | | Stop the segfault in iogt-2.4. First by changing the UpdateInterest()dgp2014-05-011-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | call that triggers it. "downChanPtr" may no longer be the right argument at that point. Second, after ending the segfault, the test became an infinite loop (nested unstacking?! whoa.), so revised the test to one that terminates (and passes). Left behind a comment that the recursive unstacking case may require more examination.
| | | * | | | | | merge trunkdgp2014-05-011-8/+27
| | | |\ \ \ \ \ \ | | | | | |_|_|_|/ | | | | |/| | | |
| | | | * | | | | Merge in the fixes for improper ChannelBuffer sharing via recycling.dgp2014-05-011-8/+27
| | | | |\ \ \ \ \ | | | |_|/ / / / / | | |/| | | | | |
| | | * | | | | | merge trunkdgp2014-04-291-2/+4
| | | |\ \ \ \ \ \ | | | | |/ / / / /
| | | | * | | | | Fix bug exposed when buffer recycling is disabled.dgp2014-04-291-2/+4
| | | | |\ \ \ \ \ | | | | | |_|_|_|/ | | | | |/| | | |
| | | * | | | | | Disable buffer recycling, which creates mysteries.dgp2014-04-251-1/+1
| | | | | | | | |
| | | * | | | | | Test iortrans-4.8.2 demos an infinite loop. Possible trouble withdgp2014-04-251-0/+5
| | | |/ / / / / | | | | | | | | | | | | | | | | pushback buffers.
| | | * | | | | Merge refcounting machinery for ChannelBuffer.dgp2014-04-211-8/+42
| | | |\ \ \ \ \ | | | | |_|_|_|/ | | | |/| | | |
| | | * | | | | Fix for Bug [97069ea11a]: Set return message in close if a flush error is ↵oehhar2014-04-041-1/+11
| | | |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | reported (which may be an error from a background flush)
| | | * \ \ \ \ \ Merge minimal fix for iocmd-23.11.dgp2014-03-281-10/+28
| | | |\ \ \ \ \ \ | | | | |_|_|_|_|/ | | | |/| | | | | | | | | | | | | | | | | | | | | | | Note that top channel regeneration is removed, so that Preserve/Release call pairs are sure to operate on the same pointers. Other bug fixes may need to change that.
| | | * | | | | | Simplify the core output operations of channels. Reduce duplicative and dead ↵dgp2014-02-041-590/+63
| | | |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | code.
| | | * \ \ \ \ \ \ Eliminate the use of a staging buffer in WriteChars().dgp2014-01-301-185/+115
| | | |\ \ \ \ \ \ \