| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|\
| |
| |
| |
| | |
schedules cause a ForwardingResult to remain on the forwardList after
it has been processed (IORChan is the origin of the code in IORTrans).
|
| |
| |
| |
| |
| | |
schedules cause a ForwardingResult to remain on the forwardList after
it has been processed (IORChan is the origin of the code in IORTrans).
|
|\ \
| |/
| |
| | |
segfault trying to use a deleted interp. Fixed.
|
| |
| |
| | |
does segfault trying to use a deleted interp. Fixed.
|
| | |
|
|\ \
| |/ |
|
| | |
|
| |
| |
| |
| | |
where it was allocated. This constraint allows the struct to safely
hold Tcl_Obj values, which has been convenient for storing callback commands.
|
|\ \
| |/ |
|
| |
| |
| | |
new each operation, and we can benefit from any lookup info cached in intreps.
|
| |
| |
| |
| |
| |
| |
| | |
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].
|
| | |
|
|\ \
| |/ |
|
| | |
|
|\ \
| |/
| |
| | |
callbacks as (copies of) lists, not shared Tcl_Obj arrays. Still could use
cleanup and improvements.
|
| |
| |
| |
| | |
callbacks as (copies of) lists, not shared Tcl_Obj arrays. Still could
use cleanup and improvements.
|
|\ \
| |/
| |
| |
| | |
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.
|
| | |
|
| | |
|
| |
| |
| |
| | |
clarification of #endifs, reduction of unnecessary casts, use of array syntax
for reading array elements, etc.)
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
owner == handler.
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
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.
|