summaryrefslogtreecommitdiffstats
path: root/lib/generate/fs.js
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@friendco.de>2014-12-10 16:32:49 +0100
committerAaron O'Mullan <aaron.omullan@friendco.de>2014-12-10 16:32:49 +0100
commit960ef4d9459c2ec7158bdef8d73ae610b605b865 (patch)
treee0522d0cc5a6a9589bae0af211a8481eeed21776 /lib/generate/fs.js
parent92523fb4b54ddfcdf9586f8a2140fdc8b1d0793b (diff)
downloadgitbook-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.js15
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),