diff options
author | Aaron O'Mullan <aaron.omullan@friendco.de> | 2014-12-10 16:32:49 +0100 |
---|---|---|
committer | Aaron O'Mullan <aaron.omullan@friendco.de> | 2014-12-10 16:32:49 +0100 |
commit | 960ef4d9459c2ec7158bdef8d73ae610b605b865 (patch) | |
tree | e0522d0cc5a6a9589bae0af211a8481eeed21776 /lib/generate/fs.js | |
parent | 92523fb4b54ddfcdf9586f8a2140fdc8b1d0793b (diff) | |
download | gitbook-960ef4d9459c2ec7158bdef8d73ae610b605b865.zip gitbook-960ef4d9459c2ec7158bdef8d73ae610b605b865.tar.gz gitbook-960ef4d9459c2ec7158bdef8d73ae610b605b865.tar.bz2 |
Fix descriptor and me leak with bad write queues
Node.js for some reason queues up writes from fs.writeFile causing
memory and descriptor leaks, preventing building large books. This is
now fixed
Fixes #336, fixes #454
Diffstat (limited to 'lib/generate/fs.js')
-rw-r--r-- | lib/generate/fs.js | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/generate/fs.js b/lib/generate/fs.js index 4c232e7..50219eb 100644 --- a/lib/generate/fs.js +++ b/lib/generate/fs.js @@ -64,7 +64,20 @@ var getFiles = function(path) { module.exports = { list: getFiles, readFile: Q.denodeify(fs.readFile), - writeFile: Q.denodeify(fs.writeFile), + //writeFile: Q.denodeify(fs.writeFile), + writeFile: function(filename, data, options) { + var d = Q.defer(); + + try { + fs.writeFileSync(filename, data, options) + } catch(err) { + d.reject(err); + } + d.resolve(); + + + return d.promise; + }, mkdirp: Q.denodeify(fsExtra.mkdirp), copy: Q.denodeify(fsExtra.copy), remove: Q.denodeify(fsExtra.remove), |