Skip to content

Commit

Permalink
Merge pull request #354 from tomayac/patch-11
Browse files Browse the repository at this point in the history
Make clearer what is a `FileSystemFileHandle` and what a `FileSystem(Sync)AccessHandle`
  • Loading branch information
fivedots authored Mar 23, 2022
2 parents 9e74e01 + 784fd7e commit 34b8ea1
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions AccessHandle.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,16 +124,16 @@ API](https://docs.google.com/document/d/1cOdnvuNIWWyJHz1uu8K_9DEgntMtedxfCzShI7d
// In all contexts
// For details on the `mode` parameter see "Exposing AccessHandles on all
// filesystems" below
const handle = await file.createAccessHandle({ mode: "in-place" });
await handle.writable.getWriter().write(buffer);
const reader = handle.readable.getReader({ mode: "byob" });
const accessHandle = await fileHandle.createAccessHandle({ mode: "in-place" });
await accessHandle.writable.getWriter().write(buffer);
const reader = accessHandle.readable.getReader({ mode: "byob" });
// Assumes seekable streams, and SharedArrayBuffer support are available
await reader.read(buffer, { at: 1 });

// Only in a worker context
const handle = await file.createSyncAccessHandle();
const writtenBytes = handle.write(buffer);
const readBytes = handle.read(buffer, { at: 1 });
const accessHandle = await fileHandle.createSyncAccessHandle();
const writtenBytes = accessHandle.write(buffer);
const readBytes = accessHandle.read(buffer, { at: 1 });
```

As mentioned above, a new *createAccessHandle()* method would be added to
Expand All @@ -158,13 +158,13 @@ default reader and writer with a *seek()* method.
### Locking semantics

```javascript
const handle1 = await file.createAccessHandle({ mode: "in-place" });
const accessHandle1 = await fileHandle.createAccessHandle({ mode: "in-place" });
try {
const handle2 = await file.createAccessHandle({ mode: "in-place" });
const accessHandle2 = await fileHandle.createAccessHandle({ mode: "in-place" });
} catch (e) {
// This catch will always be executed, since there is an open access handle
}
await handle1.close();
await accessHandle1.close();
// Now a new access handle may be created
```

Expand Down

0 comments on commit 34b8ea1

Please sign in to comment.