summaryrefslogtreecommitdiffstats
path: root/generic/tclIORChan.c
Commit message (Collapse)AuthorAgeFilesLines
* merge trunk. jan.nijtmans2014-04-161-120/+18
|\ | | | | Remove (internal) functions TclWinGetServByName(), TclWinGetSockOpt() and TclWinSetSockOpt(), which are no longer needed for any purpose.
| * 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 trunkjan.nijtmans2014-03-311-0/+2
|\ \ \ | |/ /
| * | 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
| | |
* | | remove unnecessary struct names, which only pollute the "struct" namespace ↵jan.nijtmans2012-08-201-4/+4
|/ / | | | | | | for te compiler.
* | 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.
| * * generic/tclIORChan.c (ErrnoReturn): Replace the hardwiredandreas_kupries2009-10-071-2/+2
| | | | | | | | | | | | constant 11 with the proper errno define, EAGAIN. What was I thinking ? The BSD's have a different errno assignment and break with the hardwired number. Reported by emiliano on the chat.
| * * doc/refchan.n [Bug 2827000]: Extended the implementation ofandreas_kupries2009-08-061-4/+71
| | | | | | | | | | | | | | | | * generic/tclIORChan.c: reflective channels (TIP 219, method * tests/ioCmd.test: 'read'), enabling handlers to signal EAGAIN to indicate 'no data, but not at EOF either', and other system errors. Updated documentation, extended testsuite (New test cases iocmd*-23.{9,10}).
| * * generic/tclIORChan.c (ReflectClose): Fix for [Bug 2458202].andreas_kupries2009-01-221-8/+13
| | | | | | | | | | | | Closing a channel may supply NULL for the 'interp'. Test for finalization needs to be different, and one place has to pull the interp out of the channel instead.
| * * generic/tclIORChan.c (InvokeTclMethod): Fixed the memory leakandreas_kupries2008-07-031-1/+13
| | | | | | | | | | reported in [Bug 1987821]. Thanks to Miguel for the rpeort and Don Porter for tracking the cause down.
| * fix warningdas2008-05-031-2/+1
| |
| * * tests/ioCmd.test: Extended testsuite for reflected channelandreas_kupries2008-04-241-48/+334
| | | | | | | | | | | | | | | | | | | | implementation. Added test cases about how it handles if the rug is pulled out from under a channel (= killing threads, interpreters containing the tcl command for a channel, and channel sitting in a different interpreter/thread.) * generic/tclIORChan.c: Fixed the bugs exposed by the new testcases, redone most of the cleanup and exit handling.
| * * generic/tclIORChan.c (ReflectOutput): Allow zero return fromandreas_kupries2008-04-041-2/+13
| | | | | | | | | | | | | | | | write when input was zero-length anyway. Otherwise keept it an error, and separate the message from 'written too much'. * tests/ioCmd.test (iocmd-24.6): Testcase updated for changed message.
| * * generic/tclIORChan.c (ReflectClose): Added missing removal ofandreas_kupries2008-04-041-1/+15
| | | | | | | | | | | | | | | | | | the now closed channel from the reflection map. Before we could crash the system by invoking 'chan postevent' on a closed reflected channel, dereferencing the dangling pointer in the map. * tests/ioCmd.test (iocmd-31.8): Testcase for the above.
* | * generic/tclIORChan.c: [Bug 3034840]: Fixed reference countingandreas_kupries2010-08-041-27/+71
| | | | | | | | | | * generic/tclIORTrans.c: in InvokeTclMethod and callers. * tests/ioTrans.test:
* | Use "tclIO.h" and "tclTomMathDecls.h" everywherenijtmans2010-05-031-2/+2
| |
* | If tclInt.h or tclPort.h is alreadynijtmans2010-04-271-2/+2
| | | | | | | | | | | | | | included, don't include <limits.h> again. Follow-up to [Bug 2991415]: tclport.h #included before limits.h See comments in [Bug 2991415]
* | * generic/tclIORChan.c (ReflectClose, ReflectInput, ReflectOutput,andreas_kupries2010-03-301-59/+98
| | | | | | | | | | | | | | | | 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.
* | More tidying up (whitespace, spelling, useless parentheses, useless casts)dkf2010-02-241-29/+30
| |
* | * win/tclWinDde.c: VC++ 6.0 doesn't havenijtmans2010-01-101-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * win/tclWinReg.c PDWORD_PTR * win/tclWinThrd.c: Fix various minor gcc warnings. * win/tclWinTime.c * win/tclWinConsole.c Put channel type definitions * win/tclWinChan.c in static const memory * win/tclWinPipe.c * win/tclWinSerial.c * win/tclWinSock.c * generic/tclIOGT.c * generic/tclIORChan.c * generic/tclIORTrans.c * unix/tclUnixChan.c * unix/tclUnixPipe.c * unix/tclUnixSock.c * unix/configure (regenerated with autoconf 2.59) * tests/info.test: Make test independant from tcltest implementation.
* | Cast required when setting result using a const string. String is copied by ↵patthoyts2009-11-211-2/+2
| | | | | | | | TCL_VOLATILE.
* | Fix [Bug 2849797]: channel name inconsistencies as suggested by DKFnijtmans2009-11-181-2/+2
| | | | | | | | | | | | minor *** POTENTIAL INCOMPATIBILITY *** because Tcl_CreateChannel() and its derivatives, now sometimes ignore their "chanName" argument.
* | * generic/tclIORChan.c (ErrnoReturn): Replace the hardwiredandreas_kupries2009-10-071-2/+2
| | | | | | | | | | | | constant 11 with the proper errno define, EAGAIN. What was I thinking ? The BSD's have a different errno assignment and break with the hardwired number. Reported by emiliano on the chat.
* | * doc/refchan.n [Bug 2827000]: Extended the implementation ofandreas_kupries2009-08-061-4/+71
| | | | | | | | | | | | | | | | * generic/tclIORChan.c: reflective channels (TIP 219, method * tests/ioCmd.test: 'read'), enabling handlers to signal EAGAIN to indicate 'no data, but not at EOF either', and other system errors. Updated documentation, extended testsuite (New test cases iocmd*-23.{9,10}).