Ticket UUID: | 67a5eabbd3d195915d3ccc13246bdecf10e20726 | |||
Title: | refchan, coroutine, and postevent from the "watch" proc | |||
Type: | Bug | Version: | 8.6.6 | |
Submitter: | pooryorick | Created on: | 2016-08-15 10:31:45 | |
Subsystem: | 60. NRE and coroutines | Assigned To: | apnadkarni | |
Priority: | 5 Medium | Severity: | Minor | |
Status: | Closed | Last Modified: | 2024-11-15 12:58:34 | |
Resolution: | Wont Fix | Closed By: | jan.nijtmans | |
Closed on: | 2024-06-11 07:14:31 | |||
Description: |
The following script results in an error to the effect that the coroutine is already running.
| |||
User Comments: |
pooryorick added on 2024-11-15 12:58:34:
On the "unchained" branch test iocmd-31.9 tests this issue. pooryorick added on 2024-11-04 21:50:00: This issue remains fixed on the "unchained" branch. The stated rationale for rolling back the fix for this issue, "completely nullifies the purpose of event-driven i/o", is not only false on that branch since event-driven i/o operates as expected, with write events being generated only when the underlying device is writable, but is orthogonal to the issue raised here. oehhar added on 2024-06-03 09:35:06: We had a meeting today. Today, it is my duty to close the tickets. Sorry, the others are not available today. We have to share resources... Thank you for your comprehension, Harald pooryorick added on 2024-06-03 08:15:48: This issue should remain open until [67a5eabbd3d19591] is resolved. oehhar added on 2024-06-03 08:09:34: Dear Nathan, thank you for reporting this documentation issue. Please report it in a different ticket. Thank you for your comprehension, Harald pooryorick added on 2024-06-02 21:01:04: No, the documentation for [chan postevent] does not indicate that this is expected behaviour, so this report should remain open. oehhar added on 2024-06-02 17:04:37: Sorry Nathan ! As informed on the core list:
In consequence, it is changed to a RFE and closed with the state "wont fix". Thank you for your comprehension, Harald pooryorick added on 2024-05-31 11:20:36: It is not clear to me that this is a duplicate of [d3232b49f2], so I'm reopening it. jan.nijtmans added on 2024-05-31 11:10:36: Dup of [de232b49f2] jan.nijtmans added on 2024-05-29 09:49:25: This 'bug-fix' is backed-out, see here for the full motivation. Backout approved by the TCT. pooryorick added on 2021-06-16 21:24:47: Yes, that's an accurate summary, as the call to Tcl_NotifyChannel is moved into a timer event handler. dgp added on 2021-06-16 17:15:04: Can the patch be described accurately as changing to operations of the [chan postevent] command from synchronous to asynchronous? jan.nijtmans added on 2021-06-15 14:58:25: Backed out because of [18f4a94d03]. Therefore re-opening this one. pooryorick added on 2019-04-23 13:02:56:
Fixed in [e066e24f36f67a8d] by using ferrieux added on 2016-09-06 23:43:17: FWIW, some time ago, async fcopy suffered from a similar "premature callback" issue: in some circumstances, where the copy was provably complete, the completion callback fired from within fcopy instead of from the event loop (despite the async flag). It was Obviously Wrong, and fixed. I'm tempted to follow your suggestion and propose the same here, though I don't know the details of the refchan enough to be sure of the analogy. Maybe Andreas could chime in. pooryorick added on 2016-09-06 20:36:03:
This happens because ferrieux added on 2016-08-15 12:03:52: Hum, never mind, simple interp bgerror playing its role, sorry. ferrieux added on 2016-08-15 11:58:39: Interesting: it's not even a vanilla error, it's uncatchable ! It sorta reaches the default "spit out errorInfo and exit(1)", regardless of any [catch] range. Digging... aspect added on 2016-08-15 11:53:46: The stack trace of the error is: c1 chan event schan::watch c1 (boom!) ie, yield is not even reached. schan::watch should not immediately call [chan postevent]. Wrapping that in [after 0] removes the crash, but I'm not sure this is correct behaviour for postevent either. See tcllib or http://chiselapp.com/user/aspect/repository/tcl-hacks/artifact/6cb89e9c9ebb6800 for other strategies (but I now see potentially a similar bug in the chiselapp link ..) |