1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-05 10:39:25 +02:00

Try to read frames immediately instead of waiting for a readable event. We may already have received it before.

This commit is contained in:
Simo Kinnunen 2015-04-30 20:59:38 +09:00
parent 5bb05f52f6
commit c1357ac540

View file

@ -42,6 +42,7 @@ module.exports = syrup.serial()
this.failCounter = new FailCounter(3, 10000)
this.failCounter.on('exceedLimit', this._failLimitExceeded.bind(this))
this.failed = false
this.readableListener = this._readableListener.bind(this)
}
util.inherits(FrameProducer, EventEmitter)
@ -298,12 +299,15 @@ module.exports = syrup.serial()
return Promise.resolve(true)
}
socket.stream.removeListener('readable', this.readableListener)
var endListener
return new Promise(function(resolve/*, reject*/) {
socket.on('end', endListener = function() {
resolve(true)
})
socket.stream.resume()
socket.end()
})
.finally(function() {
@ -373,11 +377,11 @@ module.exports = syrup.serial()
FrameProducer.prototype._readFrames = function(socket) {
this.needsReadable = true
socket.on('readable', this.readableListener)
socket.on('readable', function() {
this.readable = true
this._maybeEmitReadable()
}.bind(this))
// We may already have data pending. Let the user know they should
// at least attempt to read frames now.
this.readableListener()
}
FrameProducer.prototype._maybeEmitReadable = function() {
@ -387,6 +391,11 @@ module.exports = syrup.serial()
}
}
FrameProducer.prototype._readableListener = function() {
this.readable = true
this._maybeEmitReadable()
}
function createServer() {
log.info('Starting WebSocket server on port %d', screenOptions.publicPort)