forked from olcxjas-softworks/LarpixClient
Update gitignore (sorry)
This commit is contained in:
parent
a8f8c4d7ad
commit
cca8b02fea
6604 changed files with 1219661 additions and 4 deletions
46
electron/node_modules/dir-compare/src/fs/BufferPool.js
generated
vendored
Normal file
46
electron/node_modules/dir-compare/src/fs/BufferPool.js
generated
vendored
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/**
|
||||
* Collection of buffers to be shared between async processes.
|
||||
* Avoids allocating buffers each time async process starts.
|
||||
* bufSize - size of each buffer
|
||||
* bufNo - number of buffers
|
||||
* Caller has to make sure no more than bufNo async processes run simultaneously.
|
||||
*/
|
||||
function BufferPool(bufSize, bufNo) {
|
||||
var bufferPool = []
|
||||
for (var i = 0; i < bufNo; i++) {
|
||||
bufferPool.push({
|
||||
buf1: alloc(bufSize),
|
||||
buf2: alloc(bufSize),
|
||||
busy: false
|
||||
})
|
||||
}
|
||||
|
||||
var allocateBuffers = function () {
|
||||
for (var j = 0; j < bufNo; j++) {
|
||||
var bufferPair = bufferPool[j]
|
||||
if (!bufferPair.busy) {
|
||||
bufferPair.busy = true
|
||||
return bufferPair
|
||||
}
|
||||
}
|
||||
throw new Error('Async buffer limit reached')
|
||||
}
|
||||
|
||||
return {
|
||||
allocateBuffers: allocateBuffers,
|
||||
freeBuffers: freeBuffers
|
||||
}
|
||||
|
||||
function freeBuffers(bufferPair) {
|
||||
bufferPair.busy = false
|
||||
}
|
||||
}
|
||||
|
||||
function alloc(bufSize) {
|
||||
if (Buffer.alloc) {
|
||||
return Buffer.alloc(bufSize)
|
||||
}
|
||||
return new Buffer(bufSize)
|
||||
}
|
||||
|
||||
module.exports = BufferPool
|
||||
Loading…
Add table
Add a link
Reference in a new issue