Advertisement
Guest User

Untitled

a guest
Dec 10th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. // 2016-12-10 jorge@jorgechamorro.com
  2. // node.js timers are borken: node checktimers.js errs all the time
  3. // But this won't ever err in a browser: copy-paste in any browser's console
  4.  
  5. (function (ctr,flag,err1,err2) {
  6. ctr= 0, flag= 0, err1= 0, err2= 0;
  7.  
  8. function _1 () { flag= 0 }
  9. function _2 () { err1+= flag }
  10. function _3 () { flag= 1 }
  11. function _4 () { err2+= !flag }
  12.  
  13. function loop (t,i) {
  14. t= 5, i= 20, ctr+= i;
  15. while (i--) {
  16. setTimeout(_1, t+=1);
  17. setTimeout(_2, t+=1);
  18. setTimeout(_3, t+=1);
  19. setTimeout(_4, t+=1);
  20. }
  21. setTimeout(loop, t+=20);
  22. }
  23.  
  24. function logger (str) {
  25. str= '['+ ctr+ '] ERR1: '+ err1+ ' ERR2: '+ err2+ '\r';
  26. try {
  27. process.stdout.write(str);
  28. }
  29. catch (e) {
  30. console.log(str);
  31. }
  32. setTimeout(logger, 333);
  33. }
  34.  
  35. loop(), logger();
  36. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement