comparison lib/js/urweb.js @ 1021:7a4a55e05081

Use call/cc for recv and sleep
author Adam Chlipala <adamc@hcoop.net>
date Sun, 25 Oct 2009 15:29:21 -0400
parents dfe34fad749d
children f87d0fedc54c
comparison
equal deleted inserted replaced
1020:dfe34fad749d 1021:7a4a55e05081
777 } else 777 } else
778 ch = channels[chn]; 778 ch = channels[chn];
779 779
780 var msg = dequeue(ch.msgs); 780 var msg = dequeue(ch.msgs);
781 if (msg == null) { 781 if (msg == null) {
782 enqueue(ch.listeners, function(msg) { execF(execF(k, parse(msg)), null); }); 782 enqueue(ch.listeners, function(msg) { k(parse(msg)); });
783 } else { 783 } else {
784 try { 784 try {
785 execF(execF(k, parse(msg)), null); 785 k(parse(msg));
786 } catch (v) { 786 } catch (v) {
787 doExn(v); 787 doExn(v);
788 } 788 }
789 } 789 }
790 } 790 }
791 791
792 function sl(ms, k) { 792 function sl(ms, k) {
793 window.setTimeout(function() { execF(k, null); }, ms); 793 window.setTimeout(function() { k(null); }, ms);
794 }
795
796 function sp(e) {
797 execF(e, null);
794 } 798 }
795 799
796 800
797 // Key events 801 // Key events
798 802