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

Reply via email to