0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00
nodejs/doc/api
Anna Henningsen d3a8a23089
fs: forbid concurrent operations on Dir handle
libuv does not expect concurrent operations on `uv_dir_t` instances,
and will gladly create memory leaks, corrupt data, or crash the
process.

This patch forbids that, and:

- Makes sure that concurrent async operations are run sequentially
- Throws an exception if sync operations are attempted during an
  async operation

The assumption here is that a thrown exception is preferable to
a potential hard crash.

This fully fixes flakiness from `parallel/test-fs-opendir` when
run under ASAN.

PR-URL: https://github.com/nodejs/node/pull/33274
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2020-05-15 19:36:50 +02:00
..
addons.md doc: update context-aware section of addon doc 2020-03-31 10:22:12 -07:00
assert.md 2020-05-05, Version 14.2.0 (Current) 2020-05-05 20:24:37 +02:00
async_hooks.md async_hooks: move PromiseHook handler to JS 2020-05-09 07:52:22 +02:00
buffer.md doc: update Buffer(size) documentation 2020-05-08 01:16:03 +02:00
child_process.md doc: fix LTS replaceme tags 2020-04-28 15:23:46 +02:00
cli.md 2020-04-29, Version 13.14.0 (Current) 2020-04-30 00:24:31 +02:00
cluster.md doc: fix LTS replaceme tags 2020-04-28 15:23:46 +02:00
console.md 2020-05-05, Version 14.2.0 (Current) 2020-05-05 20:24:37 +02:00
crypto.md doc: correct description of decipher.setAuthTag in crypto.md 2020-05-08 01:37:26 +02:00
debugger.md
deprecations.md 2020-04-29, Version 13.14.0 (Current) 2020-04-30 00:24:31 +02:00
dgram.md doc: fix LTS replaceme tags 2020-04-28 15:23:46 +02:00
dns.md 2020-04-14, Version 13.13.0 (Current) 2020-04-14 20:22:41 +02:00
documentation.md
domain.md
embedding.md 2020-04-21, Version 14.0.0 (Current) 2020-04-21 15:50:14 +01:00
errors.md fs: forbid concurrent operations on Dir handle 2020-05-15 19:36:50 +02:00
esm.md doc: add examples for implementing ESM 2020-05-14 19:57:04 +02:00
events.md doc: fix LTS replaceme tags 2020-04-28 15:23:46 +02:00
fs.md fs: add .ref() and .unref() methods to watcher classes 2020-05-09 07:59:08 +02:00
globals.md
http2.md doc: add Uint8Array to end and write 2020-05-08 01:10:36 +02:00
http.md doc: add note about clientError writable handling 2020-05-12 20:02:49 +02:00
https.md 2020-04-29, Version 13.14.0 (Current) 2020-04-30 00:24:31 +02:00
index.md doc: add basic embedding example documentation 2020-03-21 10:58:25 +01:00
inspector.md
intl.md
modules.md doc: remove repeated word in modules.md 2020-04-23 19:22:28 +03:00
n-api.md doc: fix typo in n-api.md 2020-05-12 05:39:05 +02:00
net.md doc: add warning for socket.connect reuse 2020-05-08 18:03:26 +02:00
os.md doc: fix markdown parsing on doc/api/os.md 2020-04-29 03:53:28 +02:00
path.md doc: use uppercase on windows path 2020-03-29 22:43:53 +02:00
perf_hooks.md 2020-04-28, Version 12.16.3 'Erbium' (LTS) 2020-04-28 15:24:52 +02:00
policy.md
process.md doc: fix LTS replaceme tags 2020-04-28 15:23:46 +02:00
punycode.md
querystring.md
readline.md doc: fix LTS replaceme tags 2020-04-28 15:23:46 +02:00
repl.md
report.md doc: fix LTS replaceme tags 2020-04-28 15:23:46 +02:00
stream.md doc: fix the spelling error in stream.md 2020-04-30 18:30:46 -05:00
string_decoder.md
synopsis.md
timers.md
tls.md tls: fix --tls-keylog option 2020-05-14 16:52:52 +02:00
tracing.md
tty.md doc: fix LTS replaceme tags 2020-04-28 15:23:46 +02:00
url.md doc: doc and test URLSearchParams discrepancy 2020-05-06 10:40:10 -07:00
util.md doc: add util.types.isArrayBufferView() 2020-05-02 10:32:26 +05:30
v8.md
vm.md Revert "vm: add importModuleDynamically option to compileFunction" 2020-05-15 12:14:35 +02:00
wasi.md wasi: update start() behavior to match spec 2020-04-28 13:04:43 -04:00
worker_threads.md doc: add warnings about transferring Buffers and ArrayBuffer 2020-05-08 00:59:15 +02:00
zlib.md doc: fix LTS replaceme tags 2020-04-28 15:23:46 +02:00