Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch apn-bug-de232b49f2 Excluding Merge-Ins
This is equivalent to a diff from 8a8722e215 to bee0a0598a
2024-04-01
| ||
19:56 | TIP 688: clock command revision and speedup check-in: dd916eacf3 user: jan.nijtmans tags: trunk, main | |
08:36 | Fix for [ac7592e73c10d04b], Idle events are never processed when a "writable" handler on a nonblocki... check-in: 0feb3d12b6 user: pooryorick tags: bug-ac7592e73c10d04b | |
00:23 | Fix for [ac7592e73c10d04b], Idle events are never processed when a "writable" handler on a nonblocki... check-in: b2d083e9e0 user: pooryorick tags: bug-ac7592e73c10d04b | |
2024-03-31
| ||
15:36 |
Fix sporadic failure of 14.11.0 on some platforms. See [de232b49f26da1c1].
apn - moved to mistak... check-in: 1b9bd55b7a user: pooryorick tags: mistake | |
13:22 | One more place to disable writable polling timer Leaf check-in: bee0a0598a user: apnadkarni tags: apn-bug-de232b49f2 | |
2024-03-30
| ||
10:52 | Refchan not generating write events check-in: 4953552214 user: apnadkarni tags: apn-bug-de232b49f2 | |
2024-03-29
| ||
15:43 | 4 more files, which should have been removed as part of the libtommath 1.2 -> 1.3 upgrade check-in: 8a8722e215 user: jan.nijtmans tags: trunk, main | |
15:42 | 4 more files, which should have been removed as part of the libtommath 1.2 -> 1.3 upgrade check-in: 6a02c3b3ad user: jan.nijtmans tags: core-8-branch | |
14:22 | Merge 8.7 check-in: afc1875d51 user: jan.nijtmans tags: trunk, main | |
Changes to generic/tclIO.c.
︙ | ︙ | |||
8705 8706 8707 8708 8709 8710 8711 | statePtr->timerChanPtr = chanPtr; statePtr->timer = Tcl_CreateTimerHandler(SYNTHETIC_EVENT_TIME, ChannelTimerProc, chanPtr); } } } | | | 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 | statePtr->timerChanPtr = chanPtr; statePtr->timer = Tcl_CreateTimerHandler(SYNTHETIC_EVENT_TIME, ChannelTimerProc, chanPtr); } } } if (0 && !statePtr->timer && mask & TCL_WRITABLE && GotFlag(statePtr, CHANNEL_NONBLOCKING)) { TclChannelPreserve((Tcl_Channel)chanPtr); statePtr->timerChanPtr = chanPtr; statePtr->timer = Tcl_CreateTimerHandler(SYNTHETIC_EVENT_TIME, ChannelTimerProc,chanPtr); } |
︙ | ︙ | |||
8754 8755 8756 8757 8758 8759 8760 | */ if (chanPtr->typePtr == NULL) { CleanupTimerHandler(statePtr); } else { Tcl_Preserve(statePtr); statePtr->timer = NULL; | | | 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 | */ if (chanPtr->typePtr == NULL) { CleanupTimerHandler(statePtr); } else { Tcl_Preserve(statePtr); statePtr->timer = NULL; if (0 && statePtr->interestMask & TCL_WRITABLE && GotFlag(statePtr, CHANNEL_NONBLOCKING) && !GotFlag(statePtr, BG_FLUSH_SCHEDULED)) { /* * Restart the timer in case a channel handler reenters the event loop * before UpdateInterest gets called by Tcl_NotifyChannel. */ statePtr->timer = Tcl_CreateTimerHandler(SYNTHETIC_EVENT_TIME, |
︙ | ︙ |
Changes to generic/tclIORChan.c.
︙ | ︙ | |||
678 679 680 681 682 683 684 685 686 687 688 689 690 691 | /* * Everything is fine now. */ chan = Tcl_CreateChannel(&tclRChannelType, TclGetString(rcId), rcPtr, mode); rcPtr->chan = chan; TclChannelPreserve(chan); chanPtr = (Channel *) chan; if ((methods & NULLABLE_METHODS) != NULLABLE_METHODS) { /* * Some of the nullable methods are not supported. We clone the * channel type, null the associated C functions, and use the result | > > > > > | 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 | /* * Everything is fine now. */ chan = Tcl_CreateChannel(&tclRChannelType, TclGetString(rcId), rcPtr, mode); rcPtr->chan = chan; if (Tcl_SetChannelOption(interp, chan, "-buffering", "none") != TCL_OK) { Tcl_Close(interp, chan); /* Will also free rcPtr etc. */ return TCL_ERROR; } TclChannelPreserve(chan); chanPtr = (Channel *) chan; if ((methods & NULLABLE_METHODS) != NULLABLE_METHODS) { /* * Some of the nullable methods are not supported. We clone the * channel type, null the associated C functions, and use the result |
︙ | ︙ |
Changes to tests/io.test.
︙ | ︙ | |||
6233 6234 6235 6236 6237 6238 6239 | } -cleanup { close $f4 } -result {initial foo eof} close $f test io-44.6 {FileEventProc procedure: write-only non-blocking channel} -setup { | | | 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 | } -cleanup { close $f4 } -result {initial foo eof} close $f test io-44.6 {FileEventProc procedure: write-only non-blocking channel} -setup { } -constraints {stdio fileevent} -body { namespace eval refchan { namespace ensemble create namespace export * proc finalize {chan args} { |
︙ | ︙ |
Changes to tests/ioCmd.test.
︙ | ︙ | |||
1391 1392 1393 1394 1395 1396 1397 | set res {} proc foo args {oninit; onfinal; track; note MUST_NOT_HAPPEN; return} set c [chan create {r w} foo] note [fconfigure $c] close $c rename foo {} set res | | | | | 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 | set res {} proc foo args {oninit; onfinal; track; note MUST_NOT_HAPPEN; return} set c [chan create {r w} foo] note [fconfigure $c] close $c rename foo {} set res } -result {{-blocking 1 -buffering * -buffersize 4096 -encoding * -eofchar {} -profile * -translation {auto *}}} test iocmd-25.2 {chan configure, cgetall, no options} -match glob -body { set res {} proc foo args {oninit cget cgetall; onfinal; track; return ""} set c [chan create {r w} foo] note [fconfigure $c] close $c rename foo {} set res } -result {{cgetall rc*} {-blocking 1 -buffering * -buffersize 4096 -encoding * -eofchar {} -profile * -translation {auto *}}} test iocmd-25.3 {chan configure, cgetall, regular result} -match glob -body { set res {} proc foo args { oninit cget cgetall; onfinal; track return {-bar foo -snarf x} } set c [chan create {r w} foo] note [fconfigure $c] close $c rename foo {} set res } -result {{cgetall rc*} {-blocking 1 -buffering * -buffersize 4096 -encoding * -eofchar {} -profile * -translation {auto *} -bar foo -snarf x}} test iocmd-25.4 {chan configure, cgetall, bad result, list of uneven length} -match glob -body { set res {} proc foo {args} { oninit cget cgetall; onfinal; track return "-bar" } set c [chan create {r w} foo] |
︙ | ︙ | |||
2933 2934 2935 2936 2937 2938 2939 | note [fconfigure $c] close $c notes } c] rename foo {} set res } -constraints {testchannel thread} \ | | | | | 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 | note [fconfigure $c] close $c notes } c] rename foo {} set res } -constraints {testchannel thread} \ -result {{-blocking 1 -buffering * -buffersize 4096 -encoding * -eofchar {} * -translation {auto *}}} test iocmd.tf-25.2 {chan configure, cgetall, no options} -match glob -body { set res {} proc foo {args} {oninit cget cgetall; onfinal; track; return ""} set c [chan create {r w} foo] notes [inthread $c { note [fconfigure $c] close $c notes } c] rename foo {} set res } -constraints {testchannel thread} \ -result {{cgetall rc*} {-blocking 1 -buffering * -buffersize 4096 -encoding * -eofchar {} * -translation {auto *}}} test iocmd.tf-25.3 {chan configure, cgetall, regular result} -match glob -body { set res {} proc foo {args} { oninit cget cgetall; onfinal; track return "-bar foo -snarf x" } set c [chan create {r w} foo] notes [inthread $c { note [fconfigure $c] close $c notes } c] rename foo {} set res } -constraints {testchannel thread} \ -result {{cgetall rc*} {-blocking 1 -buffering * -buffersize 4096 -encoding * -eofchar {} * -translation {auto *} -bar foo -snarf x}} test iocmd.tf-25.4 {chan configure, cgetall, bad result, list of uneven length} -match glob -body { set res {} proc foo {args} { oninit cget cgetall; onfinal; track return "-bar" } set c [chan create {r w} foo] |
︙ | ︙ |