summaryrefslogtreecommitdiffstats
path: root/generic/tclIORChan.c
Commit message (Collapse)AuthorAgeFilesLines
* Use more "size_t" in stead of "int" internall. Also eliminate a lot of ↵jan.nijtmans2016-11-161-9/+9
| | | | type-casts which are not necessary any more.
* Micro-optimization: Use TclGetStringFromObj in stead of Tcl_GetStringFromObj ↵jan.nijtmans2016-07-081-4/+4
| | | | in many places where possible.
* [bbc304f61a] Avoid event handling when reflected channel has a watchdgp2016-03-081-2/+2
|\ | | | | | | | | change half-completed. (First half in 1 thread, second in another). When this is allowed to happen, false alarm errors from [chan postevent] are the result when timing is unlucky. See test iocmd.tf-24.17.bug3522560 .
| * [bbc304f61a] Proposed fix for reflected watch race condition.bug_bbc304f61adgp2016-03-021-1/+3
|/
* Backout failed attempt to fix [32ae34e63a].dgp2015-09-251-0/+8
|\
* \ [32ae34e63a] Prevent segfaults and data corruption when CopyData() is called ↵dgp2015-09-231-8/+0
|\ \ | |/ | | | | | | recursively. Mark new test io-53.20 as "knownBug". It demos some unknown flaw in MoveBytes().
| * Protect CopyState buffer from conflicting uses when CopyData() is calleddgp2015-09-231-8/+0
| | | | | | recursively. Also, have ReflectWatch() always give driver a chance to act.
| * Backport the cheaper Preserve/Release on channels.dgp2014-08-011-2/+2
| |\ | |/ |/|
* | Reduce the cost of Preserve/Release on channelsdgp2014-07-301-2/+2
| |
* | [12b0997ce7] Plug memleak in iocmd.tf-32.0 .bug_12b0997ce7dgp2014-07-221-23/+40
| |
* | [b47b176adf] Stop possible segfaults when variability in mutex lockaku2014-06-201-0/+16
|\ \ | |/ | | | | | | schedules cause a ForwardingResult to remain on the forwardList after it has been processed (IORChan is the origin of the code in IORTrans).
| * [b47b176adf] Stop possible segfaults when variability in mutex lockaku2014-06-201-0/+16
| | | | | | | | | | schedules cause a ForwardingResult to remain on the forwardList after it has been processed (IORChan is the origin of the code in IORTrans).
* | Test iocmd-32.1 is not "impossible" but after writing it properly it does ↵dgp2014-05-091-1/+11
|\ \ | |/ | | | | segfault trying to use a deleted interp. Fixed.
| * Test iocmd-32.1 is not "impossible" but after writing it properly itdgp2014-05-091-1/+11
| | | | | | does segfault trying to use a deleted interp. Fixed.
* | silence compiler warningdgp2014-05-081-2/+2
| |
* | Merge 8.5.dgp2014-05-081-10/+21
|\ \ | |/
| * Stop leaks of cloned Tcl_ChannelTypes.dgp2014-05-071-8/+20
| |
* | Make sure the ReflectedChannel struct is freed in the handler thread,dgp2014-04-241-2/+2
| | | | | | | | where it was allocated. This constraint allows the struct to safely hold Tcl_Obj values, which has been convenient for storing callback commands.
* | Merge reflected channel improvements.dgp2014-04-171-95/+50
|\ \ | |/
| * Reflected channels. Keep a set of method names cached so we don't createdgp2014-04-171-40/+43
| | | | | | new each operation, and we can benefit from any lookup info cached in intreps.
| * Simplify reflected channels.dgp2014-04-171-55/+7
| | | | | | | | | | | | | | Instead of having two modes of Close operations and the need to choose between them with a special value of the methods field, when the initialize pass fails for some reason, simply do not create the channel so there's nothing that needs closing. Then the methods field no longer holds anything used, so eliminate it. All the methods checking is done by [chan create].
* | Remove unused variable, don't use deprecated function, some formatting.jan.nijtmans2014-04-161-1/+1
| |
* | Purge the (now unused) argc and argv fields.dgp2014-04-151-124/+4
|\ \ | |/
| * Purge (now unused) argc and argv fields.dgp2014-04-151-107/+3
| |
* | [88aef05cda] Stop reentrancy segfault in reflected channels by managingdgp2014-04-151-2/+20
|\ \ | |/ | | | | callbacks as (copies of) lists, not shared Tcl_Obj arrays. Still could use cleanup and improvements.
| * [88aef05cda] Stop reentrancy segfault in reflected channels by managingdgp2014-04-151-2/+20
| | | | | | | | callbacks as (copies of) lists, not shared Tcl_Obj arrays. Still could use cleanup and improvements.
* | Merge minimal fix for iocmd-23.11.dgp2014-03-281-0/+2
|\ \ | |/ | | | | | | 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-0/+2
| |
| * Fix gcc warning (discovered with latest mingw, based on gcc 4.6.1)jan.nijtmans2011-10-071-2/+0
| |
* | Minor changes to improve style (C89 declarations, consistent indentation,dkf2012-08-071-1/+3
| | | | | | | | clarification of #endifs, reduction of unnecessary casts, use of array syntax for reading array elements, etc.)
* | Final part of result generation conversion (modulo any minor blunders)dkf2012-08-051-58/+71
| |
* | converting to using Tcl_Obj API for error message generation; part donedkf2012-08-031-1/+2
| |
* | Factor out a number of common patterns of use of Tcl_DStringAppend.dkf2012-07-031-6/+5
| |
* | 3528601 Fix broken --disable-threads build.dgp2012-05-221-0/+4
| |
* | Undone part of change [32d93a8414], keeping [chan postevent] synchronous for ↵andreask2012-05-091-16/+15
| | | | | | | | owner == handler.
* | * generic/tclIORChan.c [Bug 3522560]: Fixed the crash, enabled theandreask2012-05-091-15/+159
| | | | | | | | | | | | | | 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.
* | Re-using the "interp" field to signal a dead channel (via NULL value) dgp2011-09-201-6/+13
| | | | | | | | | | interfered with conditional cleanup tasks testing for "the right interp" Added a new field "dead" to perform the dead channel signalling task so the corrupted logic is avoided.
* | Conversion from [testthread] to Thread package stops most memory leaks.dgp2011-09-191-0/+1
| |
* | Plug leak of a ReflectedChannel in test iocmd.tf-32.0dgp2011-09-191-22/+36
| |
* | Plug a number of MarshallError memleaks.dgp2011-09-191-3/+9
| |
* | 3396948 Leak of ReflectedChannelMap.dgp2011-08-231-4/+3
| |
* | Use Tcl_PrintfObj to generate more (complex) error messages.dkf2011-08-051-25/+18
| |
* | Adjust ckalloc/ckfree macros to greatly reduce number of explicit casts indkf2011-03-121-15/+13
| | | | | | rest of Tcl source code. No ABI change. API change *should* be harmless.
* | MINOR: Formatting fixes, mainly to comments, so code better fits the style indkf2011-03-101-1/+1
| | | | | | the Engineering Manual.
* | More gcc warnings: variable set but not usedpseudotrunk_2011_03_08jan.nijtmans2011-03-081-2/+0
| |
* | Now that we're no longer using SCM based on RCS, the RCS Keyword linesdgp2011-03-021-2/+0
|\ \ | |/ | | cause more harm than good. Purged them (except in zlib files).
| * Now that we're no longer using SCM based on RCS, the RCS Keyword lines causedgp2011-03-021-2/+0
| | | | | | more harm than good. Purged them.
| * * generic/tclIORChan.c: [Bug 3034840]: Fixed reference countingandreas_kupries2010-08-041-24/+63
| | | | | | | | * tests/ioCmd.test: in InvokeTclMethod and callers.
| * * generic/tclIORChan.c (ReflectClose, ReflectInput, ReflectOutput,andreas_kupries2010-03-301-47/+86
| | | | | | | | | | | | | | | | ReflectSeekWide, ReflectWatch, ReflectBlock, ReflectSetOption, ReflectGetOption, ForwardProc): [Bug 2978773]: Preserve ReflectedChannel* structures across handler invokations, to avoid crashes when the handler implementation induces nested callbacks and destruction of the channel deep inside such a nesting.
| * * generic/tclIORChan.c: [Bug 2936225]: Thanks to Alexandre Ferrieuxandreas_kupries2010-03-091-6/+27
| | | | | | | | | | | | * doc/refchan.n: <ferrieux@users.sourceforge.net> for debugging and fixing * tests/ioCmd.test: the problem. It is the write-side equivalent to the bug fixed 2009-08-06.