summaryrefslogtreecommitdiffstats
path: root/generic/tclIO.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge refcounting machinery for ChannelBuffer.dgp2014-04-211-8/+42
|\
| * Added a refcounting mechanism to ChannelBuffers. Other edits todgp2014-04-211-8/+42
| | | | | | stop segfaults in tests iocmd-21.2[12].
* | 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)
| * Fix test failure socket-2.9: "1 {not owner}" instead of "1 {couldn't open ↵oehhar2014-04-011-9/+8
| | | | | | | | socket address already in use}" by only setting returned error message if not jet set.
| * Set return message in close if a flush error is reported (which may be an ↵oehhar2014-04-011-2/+13
| | | | | | | | error from a background flush). Ticket [97069ea11a]
* | 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.
| * Minimal patch to fix iocmd-23.11. Might not be the best fix, but is *a* fix.dgp2014-03-271-3/+20
| |
* | Simplify the core output operations of channels. Reduce duplicative and dead ↵dgp2014-02-041-590/+63
|\ \ | |/ | | | | code.
| * Simplify macro typecasting.dgp2014-01-311-6/+3
| |
| * The "channel" Tcl_ObjType is caching only. It never needs an UpdateString ↵dgp2014-01-311-46/+6
| | | | | | | | | | routine. It's also static to the tclIO.c file.
| * Do not call updateStringProc directly. We have TclGetString() for that.dgp2014-01-311-10/+1
| |
| * Refactor to eliminate the DoWriteChars() layer.dgp2014-01-301-64/+22
| |
| * Eliminate DoWrite(). It duplicates WriteBytes().dgp2014-01-301-163/+2
| |
| * Trial: Implement DoWrite() as WriteBytes().dgp2014-01-301-0/+4
| |
| * Simplification and cleanup enabled by last commit.dgp2014-01-301-301/+7
| |
| * Refactor WriteChars() and WriteBytes() into simple wrappers of a commondgp2014-01-301-13/+35
| | | | | | routine Write().
* | Eliminate the use of a staging buffer in WriteChars().dgp2014-01-301-185/+115
|\ \ | |/
| * The outputStage field is now unused, so never allocate it.dgp2014-01-281-29/+0
| |
| * tidy things updgp2014-01-281-194/+17
| |
| * Working code with no staging buffer use.dgp2014-01-281-31/+97
| |
| * WIPdgp2014-01-281-0/+69
| |
* | In WriteChars(), eliminate the copy step through a staging buffer when itdgp2014-01-241-10/+12
|\ \ | |/ | | is not required for channel translation.
| * Eliminate the copy to a staging buffer when that serves no functional purpose.dgp2014-01-241-10/+12
| |
| * Fix C99 comment-ism breaking the native AIX compiler. HPUX likely as well.andreask2013-05-291-2/+2
| |
| * Backport 8.6's fix [checkin 5af0d249de] to [Bug 2901998]: Inconsistent ↵ferrieux2013-05-011-8/+92
| | | | | | | | buffered I/O. Tcl's I/O now flushes buffered output before reading, discards buffered input before writing, etc.
* | Remove from tclIO.h structs used only in tclIO.c.dgp2013-02-261-0/+102
|\ \ | |/
| * structs *ChannelHandler* GetsState CopyState used only locally.dgp2013-02-261-0/+102
| |\ | | | | | | Remove from tclIO.h.
| | * structs ChannelHandler ChannelHandlerEvent GetsState CopyState used locally.dgp2013-02-261-0/+78
| | | | | | | | | Remove from tclIO.h.
| | * struct NextChannelHandler used only locally. Remove from tclIO.h.dgp2013-02-261-0/+24
| | |
* | | Repair linked list management in Tcl_DeleteCloseHandler().dgp2013-02-251-0/+14
|\ \ \ | |/ / | | | CloseCallback struct used only locally. Remove from tclIO.h.
| * | Repair linked list management in Tcl_DeleteCloseHandler().dgp2013-02-251-0/+14
| |\ \ | | |/ | | | CloseCallback struct used only locally. Remove from tclIO.h.
| | * Repair linked list management in Tcl_DeleteCloseHandler(). dgp2013-02-251-0/+14
| | | | | | | | | CloseCallback struct is used only locally. Remove from tclIO.h.
* | | merge core-8-5-branchjan.nijtmans2013-01-311-2/+2
|\ \ \ | |/ /
| * | Use twoPtrValue.ptr1 in stead of otherValuePtr everywhere. This is exactly ↵jan.nijtmans2013-01-311-2/+2
| | | | | | | | | | | | the same field, but it allows twoPtrValue.ptr2 to be used for other purposes.
| * | When checking for std channels being closed, compare the channel state,dgp2012-10-031-5/+9
| |\ \ | | |/ | | | not the channel itself so that stacked channels do not cause trouble.
| | * When checking for std channels being closed, compare the channel state,dgp2012-10-031-20/+24
| | | | | | | | | not the channel itself so that stacked channels do not cause trouble.
| | * Preserve the chanPtr so that script evaluation cannot invalidate it whendgp2012-07-241-0/+2
| | | | | | | | | we plan to use it again.
* | | Fix busyloop at exit under TCL_FINALIZE_ON_EXIT when there are unflushed ↵ferrieux2012-12-081-1/+1
| | | | | | | | | | | | nonblocking channels. Thanks Miguel for spotting.
* | | Fix for core bug yet to be named/numbered.dgp_stackedstdchandgp2012-10-021-3/+9
| | |
* | | Final part of result generation conversion (modulo any minor blunders)dkf2012-08-051-58/+67
| | |
* | | Preserve the chanPtr so that script evaluation cannot invalidate it whendgp2012-07-241-0/+2
|\ \ \ | |/ / | | | we plan to use it again.
| * | Preserve the chanPtr so that script evaluation cannot invalidate it whendgp2012-07-241-0/+2
| | | | | | | | | we plan to use it again.
* | | [Bug 3545365]: Never try a bg-flush on a dead channel, just like before ↵ferrieux2012-07-231-1/+4
| | | | | | | | | | | | 2011-08-17.
* | | Factor out a number of common patterns of use of Tcl_DStringAppend.dkf2012-07-031-5/+3
| | |
* | | Factor out constant that must be the same in multiple places. Prompted by adkf2012-05-251-3/+4
| | | | | | | | | conversation with Alexandre Ferrieux.
* | | * generic/tclIORChan.c [Bug 3522560]: Fixed the crash, enabled theandreask2012-05-091-1/+1
| | | | | | | | | | | | | | | | | | | | | test case. Modified [chan postevent] to properly inject the event(s) into the owner thread's event queue for execution in the correct context. Renamed the ForwardOpTo...Thread() function to match with our terminology.
* | | Properly close nonblocking channels even when not flushing them.ferrieux2012-05-071-3/+3
| | |
* | | IMPLEMENTATION OF TIP#398 : Quickly Exit with Non-Blocking Blocked Channelsferrieux2012-04-281-7/+28
|\ \ \
| * | | Compat flag, test, and doc update.tip_398_implferrieux2012-04-281-3/+29
| | | |
| * | | merge trunkferrieux2012-04-241-1/+1
| |\ \ \