Fraser Adams created PROTON-760:
-----------------------------------

             Summary: Improve the JavaScript binding's internal Event loop and 
add additional tests
                 Key: PROTON-760
                 URL: https://issues.apache.org/jira/browse/PROTON-760
             Project: Qpid Proton
          Issue Type: Improvement
            Reporter: Fraser Adams


Improve the JavaScript binding's internal Event loop and add additional tests.

The addition of JavaScript soak/performance tests msgr-send.js and 
msgr-recv.js, which mirror tests of the same name in C and Python flagged up a 
few edge cases that caused sporadic failures. The problems seem to be related 
to the ws WebSocket library directly calling some callbacks rather than posting 
to the JavaScript internal Event queue. The effect of calling directly mean 
that the main message handler and the close handler could actually get called 
*concurrently* which is clearly a bad thing and somewhat undexpected in 
JavaScript..... The improvements here add a number of guard tests and introduce 
a setTimeout that allows the "real" close handler to be deferred by posting it 
onto the Event queue.

msgr-send and msgr-recv have been run with counts of several million messages 
and also with message sizes of up to 2MB and everything seems stable now.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to