| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
rest of Tcl source code. No ABI change. API change *should* be harmless.
|
|
|
| |
the Engineering Manual.
|
| |
|
|\
| |
| | |
cause more harm than good. Purged them (except in zlib files).
|
| |
| |
| | |
more harm than good. Purged them.
|
| |
| |
| |
| | |
* tests/ioCmd.test: in InvokeTclMethod and callers.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
* 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.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
* 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}).
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
reported in [Bug 1987821]. Thanks to Miguel for the rpeort and
Don Porter for tracking the cause down.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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/tclIORTrans.c: in InvokeTclMethod and callers.
* tests/ioTrans.test:
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
included, don't include <limits.h>
again. Follow-up to [Bug 2991415]:
tclport.h #included before limits.h
See comments in [Bug 2991415]
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
* 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.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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.
|
| |
| |
| |
| | |
TCL_VOLATILE.
|
| |
| |
| |
| |
| |
| | |
minor *** POTENTIAL INCOMPATIBILITY *** because
Tcl_CreateChannel() and its derivatives, now
sometimes ignore their "chanName" argument.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
* 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}).
|
| |
| |
| |
| |
| | |
- some internal const decorations
- spacing
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
* generic/tclIORTrans.c (ReflectClose): 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.
|
| |
| |
| |
| | |
etc.)
|
| |
| |
| |
| |
| | |
const tables. No functional
or API change.
|
| |
| |
| |
| |
| | |
reported in [Bug 1987821]. Thanks to Miguel for the rpeort and
Don Porter for tracking the cause down.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
channels. 'chan postevent' is defined to work only from within
the interpreter containing the handler command. Sensible, we
want only handler commands to use it. It identifies the channel
by handle. The channel moves to a different interpreter or
thread. The interpreter containing the handler command doesn't
know the channel any longer. 'chan postevent' fails, not finding
the channel any longer. Uhm.
Fixed by creating a second per-interpreter channel table, just
for reflected channels, where each interpreter remembers for
which reflected channels it has the handler command. This info
does not move with the channel itself. The table is updated by
'chan create', and used by 'chan postevent'.
* tests/ioCmd.test: Updated the testsuite.
|
| |
|
|
|
|
|
|
|
|
| |
buffer object if the physocal read returned an error and the
bypass area had no message.
* generic/tclIORChan.c (TclChanCreateObjCmd): Plugged a leak of
the return value from the "initialize" method of a channel
handler.
|
| |
|