[Ur] Triggering JavaScript context switches

Saulo Araujo saulo2 at gmail.com
Sun Aug 21 19:13:39 EDT 2016


Hi Benjamin,

I believe that, besides sleep, only the functions rpc and recv also trigger
context switches. If you look into the source code of the Ur/Web JavaScript
runtime (urweb.js), you will see that there is a boolean variable called
maySuspend, which says when context switches are allowed and the only
functions that check the value of maySuspend are sl (sleep), rc (rpc) and
rc (recv).

Sincerely,
Saulo Araujo

On Sat, Aug 20, 2016 at 5:25 PM, Benjamin Barenblat <bbaren at mit.edu> wrote:

> The threads demo* explains that ‘Ur/Web [client code] uses cooperative
> multi-threading, not the more common preemptive multi-threading. Only
> one thread runs at a time, and only particular function calls can
> trigger context switches. In this example, sleep is the only such
> function that appears.’ What other functions can trigger context
> switches?
>
> * http://impredicative.com/ur/demo/threads.desc.html
>
> _______________________________________________
> Ur mailing list
> Ur at impredicative.com
> http://www.impredicative.com/cgi-bin/mailman/listinfo/ur
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.impredicative.com/pipermail/ur/attachments/20160821/7eab32ef/attachment.html>


More information about the Ur mailing list