[whatwg] WebSocket bufferedAmount includes overhead or not

Jonas Sicking jonas at sicking.cc
Wed Mar 31 15:57:57 PDT 2010

On Wed, Mar 31, 2010 at 3:16 PM, Boris Zbarsky <bzbarsky at mit.edu> wrote:
> On 3/31/10 2:38 AM, Jonas Sicking wrote:
>> I would have expected bufferedAmount to only change as a result of an
>> event being posted to the main event loop. We generally try to avoid
>> "racy" variables since people don't expect them. Consider for example
>> if (ws.bufferedAmount>  X) {
>>   setUpSomeState();
>> }
>> try {
>>   doOtherThings();
>> }
>> finally {
>>   if (ws.bufferedAmount>  X) {
>>     cleanUpState();
>>   }
>> }
>> I'd imagine most JS developers to expect the cleanup to always happen
>> if the setup did.
> Sure, but do they expect the cleanup to happen if the setup did not if
> doOtherThings tried to send() stuff?
> More to the point, is send() allowed to actually send anything when called,
> or does it have to buffer it all until the next time you get to the event
> loop?

I would expect that send() is allowed to start streaming data over the
network as soon as it can, but only update bufferedAmount from the
event loop.

/ Jonas

More information about the whatwg mailing list