2026/04/12
< 2026
|
Sunday, April 12, 2026 (#102)
|
|
References |
- 08:33 It may be both -- a very elegant trainwreck.
- 15:57 The "trainwreck" part has emerged: the SQL is being sent, but (once again) nothing is coming back.
- How did I debug this before, and why isn't it easier yet.
- 16:31 It would make sense* if the problem is that it's detecting EoS too soon, since altering that was the whole point of the latest rearrangement.
- *Therefore it's probably something else, but it seems worth checking anyway.
- 20:07 The cluckerfusting continues: Updater objects are created by the Starter Command. Syntax Commands can access the Updater via
OStarter()(I think), but at what point do they get to make that change?- I guess there's got to be an event I can override, but... what, exactly. Brain is protesting at having to research this.
- 20:28 Overriding
OEngine(), when the Engine-pointer gets set, seems like a reasonable choice. Code to configure the Updater:$this->OSession()->QOUpdater()->GetIt()->EndCueString($this->CueString());
- 20:46 That needed to be done, but it didn't fix the problem. The end-checker is actually receiving only an empty string, so far -- and yet the loop is terminating. The question becomes (or remains, I forget): what is causing the loop to terminate, if not the end-checker?
- 20:55 So,
IsRunning()is FALSE -- but alsodoBreakis TRUE. I have to hope that the latter is causing the former, because any other cause is going to be harder to debug... but what is setting the latter?? - 20:59 It seems to be happening inside
Canal::ConveyCheck(), but there's nothing that obviously could be causing it. This means I have to figure out how to accessSession->doBreakso I can see where it changes. ...or maybe put aWhoCalledMe()in theDoBreak()function? - 21:24 Apparently
str_ends_with("","")returns TRUE. If there's no data but also the cue (somehow) hasn't been set, then it thinks EoF has happened.- It seems reasonable to override that (at least for now) by saying that if there's no content, then that pre-empts the check (although the cue should never be empty, either).
- 21:39
doBreakis no longer being set, butIsRunning()is still getting cleared. So now I have to figure out where/why/how that is happening. "My worst fears were confirmed: my watch was in my back pocket."