{"sha":"8137f27eb22c78b8bb2d04e99d3a54496a3df36b","node_id":"C_kwDOAiB0YNoAKDgxMzdmMjdlYjIyYzc4YjhiYjJkMDRlOTlkM2E1NDQ5NmEzZGYzNmI","commit":{"author":{"name":"Sean Parent","email":"sparent@adobe.com","date":"2022-09-06T22:25:30Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2022-09-06T22:25:30Z"},"message":"Adding await docs. (#494)","tree":{"sha":"172d3bcdc21f5b9614ced78b6c580c648b5b9ca6","url":"https://api.github.com/repos/stlab/stlab/git/trees/172d3bcdc21f5b9614ced78b6c580c648b5b9ca6"},"url":"https://api.github.com/repos/stlab/stlab/git/commits/8137f27eb22c78b8bb2d04e99d3a54496a3df36b","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJjF8jaCRBK7hj4Ov3rIwAAM70IAAk1ke0ROetwcvAFzKGKOOdG\nJDXqA9+X6gw3/jaPQvPCmCuB4Hr9rx6cwUKzubJDMZ0RQPsF3CtjhntT+RU9Qs8z\nff2e+odJCAiOtUQ0yMF/CaCMul1aPjRukemrWpxewDoNHo04Yekpxj3fIN0GqGjB\nr1rLeXqKPk9ihMrbw5ccL/8anibyenrPZi3om4rw7lwoCUOe0uOhsD4oJxtGlnuX\ni5hXVZ/VM5t0a8c7OqF2X9X5sgEeF6p3At6LVmo3xkh49oyf+EIMWktpBq2bsOwH\nfr8nmLvBDfM1/sat/XdiW1wAh82OawL6qrLqRCqzOyfirqqeTKt9yhysRwKlhB0=\n=nk3A\n-----END PGP SIGNATURE-----\n","payload":"tree 172d3bcdc21f5b9614ced78b6c580c648b5b9ca6\nparent e69d4bf7c49b514515283438e0782672b8231304\nauthor Sean Parent <sparent@adobe.com> 1662503130 -0700\ncommitter GitHub <noreply@github.com> 1662503130 -0700\n\nAdding await docs. (#494)\n\n","verified_at":"2024-01-16T19:59:59Z"}},"url":"https://api.github.com/repos/stlab/stlab/commits/8137f27eb22c78b8bb2d04e99d3a54496a3df36b","html_url":"https://github.com/stlab/stlab/commit/8137f27eb22c78b8bb2d04e99d3a54496a3df36b","comments_url":"https://api.github.com/repos/stlab/stlab/commits/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/comments","author":{"login":"sean-parent","id":2279724,"node_id":"MDQ6VXNlcjIyNzk3MjQ=","avatar_url":"https://avatars.githubusercontent.com/u/2279724?v=4","gravatar_id":"","url":"https://api.github.com/users/sean-parent","html_url":"https://github.com/sean-parent","followers_url":"https://api.github.com/users/sean-parent/followers","following_url":"https://api.github.com/users/sean-parent/following{/other_user}","gists_url":"https://api.github.com/users/sean-parent/gists{/gist_id}","starred_url":"https://api.github.com/users/sean-parent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sean-parent/subscriptions","organizations_url":"https://api.github.com/users/sean-parent/orgs","repos_url":"https://api.github.com/users/sean-parent/repos","events_url":"https://api.github.com/users/sean-parent/events{/privacy}","received_events_url":"https://api.github.com/users/sean-parent/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"e69d4bf7c49b514515283438e0782672b8231304","url":"https://api.github.com/repos/stlab/stlab/commits/e69d4bf7c49b514515283438e0782672b8231304","html_url":"https://github.com/stlab/stlab/commit/e69d4bf7c49b514515283438e0782672b8231304"}],"stats":{"total":39,"additions":23,"deletions":16},"files":[{"sha":"3fd0493ff900eed1556b2b52ab4935f1a9701442","filename":"docs/README.md","status":"modified","additions":7,"deletions":4,"changes":11,"blob_url":"https://github.com/stlab/stlab/blob/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2FREADME.md","raw_url":"https://github.com/stlab/stlab/raw/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2FREADME.md","contents_url":"https://api.github.com/repos/stlab/stlab/contents/docs%2FREADME.md?ref=8137f27eb22c78b8bb2d04e99d3a54496a3df36b","patch":"@@ -24,10 +24,13 @@ You'll need Homebrew to make sure you have the most recent version of Ruby.\n Periodically run `gem update` and `bundle update` to make sure you have the latest jekyll tooling.\n \n ## Building Docs\n-1. `cd` to repo directory\n-2. `bundle exec jekyll serve --watch`\n-3. Documentation viewable at `localhost:4000`\n-4. Modifying sources should auto-regenerate the documentation\n+```\n+cd ./docs\n+bundle exec jekyll serve --watch\n+```\n+\n+Documentation viewable at `localhost:4000`\n+Modifying sources should auto-regenerate the documentation\n \n ## Building Examples\n 1. `./build.sh` will download dependencies, build, and run all the `*.cpp` files in the `libraries` directory."},{"sha":"b22a520fb6c5586eff90931019b1cd5a13f91d29","filename":"docs/libraries/concurrency/await.hpp/f_await.md","status":"modified","additions":2,"deletions":2,"changes":4,"blob_url":"https://github.com/stlab/stlab/blob/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_await.md","raw_url":"https://github.com/stlab/stlab/raw/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_await.md","contents_url":"https://api.github.com/repos/stlab/stlab/contents/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_await.md?ref=8137f27eb22c78b8bb2d04e99d3a54496a3df36b","patch":"@@ -1,8 +1,8 @@\n ---\n layout: function\n title: await\n-owner: __MISSING__\n-brief: __MISSING__\n+owner: sean-parent\n+brief: Waits until the future is ready and returns the future value.\n tags:\n   - function\n defined_in_file: concurrency/await.hpp"},{"sha":"e0c4996cd2fd4252ced4134fc8d26c0babae4da8","filename":"docs/libraries/concurrency/await.hpp/f_await_for.md","status":"modified","additions":3,"deletions":2,"changes":5,"blob_url":"https://github.com/stlab/stlab/blob/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_await_for.md","raw_url":"https://github.com/stlab/stlab/raw/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_await_for.md","contents_url":"https://api.github.com/repos/stlab/stlab/contents/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_await_for.md?ref=8137f27eb22c78b8bb2d04e99d3a54496a3df36b","patch":"@@ -1,8 +1,9 @@\n ---\n layout: function\n title: await_for\n-owner: __MISSING__\n-brief: __MISSING__\n+owner: sean-parent\n+brief: |\n+  Wait for the specified duration for the future to be ready and either returns a ready future or a new future which can be waited on.\n tags:\n   - function\n defined_in_file: concurrency/await.hpp"},{"sha":"8811b34dd9e9b88b1a6998e6521555f860cbd72f","filename":"docs/libraries/concurrency/await.hpp/f_blocking_get.md","status":"modified","additions":2,"deletions":2,"changes":4,"blob_url":"https://github.com/stlab/stlab/blob/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_blocking_get.md","raw_url":"https://github.com/stlab/stlab/raw/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_blocking_get.md","contents_url":"https://api.github.com/repos/stlab/stlab/contents/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_blocking_get.md?ref=8137f27eb22c78b8bb2d04e99d3a54496a3df36b","patch":"@@ -2,7 +2,7 @@\n layout: function\n title: blocking_get\n owner: sean-parent\n-brief: Waits until the future is ready\n+brief: _Deprecated_ Use [`await()`](./f_await_for.html).\n tags:\n   - function\n defined_in_file: concurrency/await.hpp\n@@ -35,4 +35,4 @@ namespace:\n   - v1\n ---\n \n-Waits until the passed future is ready. Using this function causes that one thread resource is consumed which increases contention and possibly causing a deadlock. As well any subsequent non-dependent calculations on the task are also blocked. It is strongly recommended to avoid using this function, but use continuations.\n\\ No newline at end of file\n+Waits until the passed future is ready. Using this function causes that one thread resource is consumed which increases contention and possibly causing a deadlock. As well any subsequent non-dependent calculations on the task are also blocked. It is strongly recommended to avoid using this function, but use continuations."},{"sha":"d986715c6c642b0b8df373cc70f9bf5f8abbb4a1","filename":"docs/libraries/concurrency/await.hpp/f_blocking_get_for.md","status":"modified","additions":2,"deletions":2,"changes":4,"blob_url":"https://github.com/stlab/stlab/blob/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_blocking_get_for.md","raw_url":"https://github.com/stlab/stlab/raw/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_blocking_get_for.md","contents_url":"https://api.github.com/repos/stlab/stlab/contents/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_blocking_get_for.md?ref=8137f27eb22c78b8bb2d04e99d3a54496a3df36b","patch":"@@ -1,8 +1,8 @@\n ---\n layout: function\n title: blocking_get_for\n-owner: __MISSING__\n-brief: __MISSING__\n+owner: sean-parent\n+brief: _Deprecated_ Use [`await_for()`](./f_await_for.html).\n tags:\n   - function\n defined_in_file: concurrency/await.hpp"},{"sha":"c1ad198c0c4abfb88d508383908331dbf2694f5a","filename":"docs/libraries/concurrency/await.hpp/f_invoke_waiting.md","status":"modified","additions":2,"deletions":2,"changes":4,"blob_url":"https://github.com/stlab/stlab/blob/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_invoke_waiting.md","raw_url":"https://github.com/stlab/stlab/raw/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_invoke_waiting.md","contents_url":"https://api.github.com/repos/stlab/stlab/contents/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Ff_invoke_waiting.md?ref=8137f27eb22c78b8bb2d04e99d3a54496a3df36b","patch":"@@ -1,8 +1,8 @@\n ---\n layout: function\n title: invoke_waiting\n-owner: __MISSING__\n-brief: __MISSING__\n+owner: sean-parent\n+brief: When calling a waiting operation, other than `await()` or `await_for()`, such as directly waiting on a `std::condition_variable`, the waiting operation should be invoked with `invoke_waiting()`. This will ensure that there are enough threads available in the portable default executor pool to resolve any pending dependent tasks. With the other default executors, this operation has no effect. Platform executors have similar capability but are hooked into blocking primitives to directly detect blocking calls.\n tags:\n   - function\n defined_in_file: concurrency/await.hpp"},{"sha":"53485562a24339d48c584b7cf46def826bd47025","filename":"docs/libraries/concurrency/await.hpp/index.md","status":"modified","additions":5,"deletions":2,"changes":7,"blob_url":"https://github.com/stlab/stlab/blob/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Findex.md","raw_url":"https://github.com/stlab/stlab/raw/8137f27eb22c78b8bb2d04e99d3a54496a3df36b/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Findex.md","contents_url":"https://api.github.com/repos/stlab/stlab/contents/docs%2Flibraries%2Fconcurrency%2Fawait.hpp%2Findex.md?ref=8137f27eb22c78b8bb2d04e99d3a54496a3df36b","patch":"@@ -1,8 +1,11 @@\n ---\n layout: library\n title: concurrency/await.hpp\n-owner: __MISSING__\n-brief: __MISSING__\n+owner: sean-parent\n+brief: |\n+  Await provides a way to await the value from a future and to notify the default executor that a task is waiting. Blocking calls are discouraged because they may lead to deadlocks or thread explosions.\n+\n+  There is a good presentation of the issues [here](https://youtu.be/Z86b3Rd09sE).\n tags:\n   - sourcefile\n library-type: sourcefile"}]}