For J's viewpoint echo is synchronous. It calls a callback function of the front-end and return before execution of other J codes. The front-end has also finished rendering by calling suitable Qt or other API. Anyways wd'msgs' (DoEvents) is a kludge and is discouraged or unavailable in most modern GUI frameworks.
On Sun, Aug 9, 2020, 8:58 PM Raul Miller <[email protected]> wrote: > Understood. > > But something is wrong if the message from the 1!:2&2 in the echo verb > is not in that message queue when wd'msgs' executes. > > (Whether that something was originally malicious or some kind of > honest mistake is, at this point, lost in time, though perhaps if the > cause could be isolated the picture would become more clear.) > > Thanks, > > -- > Raul > > On Sun, Aug 9, 2020 at 8:50 AM bill lam <[email protected]> wrote: > > > > IIRC msgs is asynchronous, it pulls and dispatchs from msg loop. How and > > when the events are processed belonged to the Qt framework. > > > > On Sun, Aug 9, 2020, 8:42 PM Raul Miller <[email protected]> wrote: > > > > > Yes, > > > status=: wd@'msgs'@(wd@'msgs')@echo > > > > > > works as intended. > > > > > > Oddly, introducing other routines in the parenthesis there does not. > > > > > > Also, status=: wd@'msgs'^:2@echo seems to bypass the delay for the > > > first echo but fails on the second echo. > > > > > > So, from my perspective, there's something glitched about the > > > implementation of the wd'msgs' routine. Possibly something glitched in > > > the underlying framework, though given the complexity that I have seen > > > there, I'm not sure how that would be tackled. > > > > > > Thanks, > > > > > > -- > > > Raul > > > > > > On Sun, Aug 9, 2020 at 8:35 AM Henry Rich <[email protected]> > wrote: > > > > > > > > I don't know how wd'msgs' works, but I know it doesn't interact with > the > > > > JE where 6!:3 is executed. An alternative explanation for your > > > > observations might be that wd'msgs' prints messages that are pending > > > > when it is executed. That is, the messages are appearing not after > the > > > > delay, but at the time of the next wd'msgs'. You could test that. > > > > > > > > Henry Rich > > > > > > > > On 8/9/2020 2:27 AM, Raul Miller wrote: > > > > > Under both J901 and J902, wd 'msgs' seems to take effect at the > wrong > > > > > point of execution. > > > > > > > > > > delay=: 6!:3 > > > > > status=: wd@'msgs'@echo > > > > > status 'start' > > > > > delay 1 > > > > > status 'started' > > > > > delay 5 > > > > > status 'done' > > > > > > > > > > Here, the text from echo commands do not appear until after the > > > > > subsequent delay commands have completed. > > > > > > > > > > Is this intended? If so, why? If not, could wd 'msgs' and/or 1!:2 > be > > > > > fixed so that the echo text appears when wd'msgs' is run? > > > > > > > > > > Thanks, > > > > > > > > > > > > > > > > > -- > > > > This email has been checked for viruses by AVG. > > > > https://www.avg.com > > > > > > > > > ---------------------------------------------------------------------- > > > > For information about J forums see > http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
