{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,24]],"date-time":"2026-01-24T18:41:14Z","timestamp":1769280074692,"version":"3.49.0"},"publisher-location":"New York, NY, USA","reference-count":36,"publisher":"ACM","license":[{"start":{"date-parts":[[2022,8,29]],"date-time":"2022-08-29T00:00:00Z","timestamp":1661731200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Ministry of Science and Technology of Taiwan","award":["MOST 110-2221-E-A49-030-MY3"],"award-info":[{"award-number":["MOST 110-2221-E-A49-030-MY3"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2022,8,29]]},"DOI":"10.1145\/3547276.3548519","type":"proceedings-article","created":{"date-parts":[[2023,1,15]],"date-time":"2023-01-15T00:56:17Z","timestamp":1673744177000},"page":"1-8","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Structured Concurrency: A Review"],"prefix":"10.1145","author":[{"given":"Yi-An","family":"Chen","sequence":"first","affiliation":[{"name":"Department of Computer Science, National Yang Ming Chiao Tung University, Taiwan"}]},{"given":"Yi-Ping","family":"You","sequence":"additional","affiliation":[{"name":"Department of Computer Science, National Yang Ming Chiao Tung University, Taiwan"}]}],"member":"320","published-online":{"date-parts":[[2023,1,13]]},"reference":[{"key":"e_1_3_2_1_1_1","volume-title":"kotlinx.coroutines. Retrieved","year":"2022","unstructured":"2018. kotlinx.coroutines. Retrieved May 25, 2022 from https:\/\/github.com\/Kotlin\/kotlinx.coroutines"},{"key":"e_1_3_2_1_2_1","volume-title":"Retrieved","year":"2022","unstructured":"2021. Debug coroutines using IntelliJ IDEA\u2014tutorial. Retrieved May 25, 2022 from https:\/\/kotlinlang.org\/docs\/debug-coroutines-with-idea.html"},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.5555\/647057.713851"},{"key":"e_1_3_2_1_4_1","volume-title":"Retrieved","author":"Belmonte John","year":"2018","unstructured":"John Belmonte. 2018. \u201cConcurrency made easy\u201d: coming soon to a programming language near you. Retrieved May 25, 2022 from https:\/\/medium.com\/@belm0\/concurrency-made-easy-d3fdb0382c58"},{"key":"e_1_3_2_1_5_1","volume-title":"Structured programming","author":"Dahl Ole-Johan","unstructured":"Ole-Johan Dahl, Edsger\u00a0Wybe Dijkstra, and Charles Antony\u00a0Richard Hoare. 1972. Structured programming. Academic Press Ltd."},{"key":"e_1_3_2_1_6_1","volume-title":"Retrieved","year":"2021","unstructured":"Docs.rs. 2021. Function crossbeam::scope. Retrieved May 25, 2022 from https:\/\/docs.rs\/crossbeam\/0.8.1\/crossbeam\/fn.scope.html"},{"key":"e_1_3_2_1_7_1","volume-title":"Retrieved","year":"2021","unstructured":"Docs.rs. 2021. Function rayon::scope. Retrieved May 25, 2022 from https:\/\/docs.rs\/rayon\/1.5.1\/rayon\/fn.scope.html"},{"key":"e_1_3_2_1_8_1","volume-title":"Retrieved","author":"Elizarov Roman","year":"2017","unstructured":"Roman Elizarov. 2017. Introduction to Coroutines. Retrieved May 25, 2022 from https:\/\/www.youtube.com\/watch?v=_hfBv0a09Jc"},{"key":"e_1_3_2_1_9_1","volume-title":"Retrieved","author":"Elizarov Roman","year":"2018","unstructured":"Roman Elizarov. 2018. Structured Concurrency. Retrieved May 25, 2022 from https:\/\/elizarov.medium.com\/structured-concurrency-722d765aa952"},{"key":"e_1_3_2_1_10_1","volume-title":"Concurrent Programming for Scalable Web Architectures. Diploma Thesis","author":"Erb Benjamin","unstructured":"Benjamin Erb. 2012. Concurrent Programming for Scalable Web Architectures. Diploma Thesis. Institute of Distributed Systems, Ulm University. http:\/\/www.benjamin-erb.de\/thesis"},{"key":"e_1_3_2_1_11_1","volume-title":"Retrieved","author":"Graham R.","year":"2013","unstructured":"R. Graham. 2013. The C10M problem. Retrieved May 25, 2022 from http:\/\/c10m.robertgraham.com\/p\/manifesto.html"},{"key":"e_1_3_2_1_12_1","volume-title":"Retrieved","author":"Hejlsberg Anders","year":"2010","unstructured":"Anders Hejlsberg. 2010. Introducing Async\u2014Simplifying Asynchronous Programming. Retrieved May 25, 2022 from https:\/\/channel9.msdn.com\/Blogs\/Charles\/Anders-Hejlsberg-Introducing-Async"},{"key":"e_1_3_2_1_13_1","volume-title":"Retrieved","author":"Kegel Dan","year":"2006","unstructured":"Dan Kegel. 2006. The C10K problem. Retrieved May 25, 2022 from http:\/\/www.kegel.com\/c10k.html"},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/850657.850658"},{"key":"e_1_3_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2006.180"},{"key":"e_1_3_2_1_16_1","volume-title":"Retrieved","author":"Lefkowitz Glyph","year":"2014","unstructured":"Glyph Lefkowitz. 2014. Unyielding. Retrieved May 25, 2022 from https:\/\/glyph.twistedmatrix.com\/2014\/02\/unyielding.html"},{"key":"e_1_3_2_1_17_1","volume-title":"Retrieved","author":"Linux","year":"2005","unstructured":"Linux man-pages contributors. 2005. pthreads\u2014POSIX threads. Retrieved May 25, 2022 from https:\/\/man7.org\/linux\/man-pages\/man7\/pthreads.7.html"},{"key":"e_1_3_2_1_18_1","volume-title":"Retrieved","author":"Lippert Eric","year":"2011","unstructured":"Eric Lippert. 2011. Asynchronous Programming\u2014Easier Asynchronous Programming with the New Visual Studio Async CTP. Retrieved May 25, 2022 from https:\/\/docs.microsoft.com\/en-us\/archive\/msdn-magazine\/2011\/october\/asynchronous-programming-easier-asynchronous-programming-with-the-new-visual-studio-async-ctp"},{"key":"e_1_3_2_1_19_1","volume-title":"Retrieved","author":"McCall John","year":"2021","unstructured":"John McCall, Joe Groff, Doug Gregor, and Konrad Malawski. 2021. Structured Concurrency. Retrieved May 25, 2022 from https:\/\/github.com\/apple\/swift-evolution\/blob\/main\/proposals\/0304-structured-concurrency.md"},{"key":"e_1_3_2_1_20_1","volume-title":"Presentation given at the 1996 Usenix Annual Technical Conference, Vol.\u00a05.","author":"Ousterhout John","unstructured":"John Ousterhout. 1996. Why threads are a bad idea (for most purposes). In Presentation given at the 1996 Usenix Annual Technical Conference, Vol.\u00a05. San Diego, CA, USA."},{"key":"e_1_3_2_1_21_1","volume-title":"Retrieved","author":"Smith J.","year":"2017","unstructured":"Nathaniel\u00a0J. Smith. 2017. Trio\u2014a friendly Python library for async concurrency and I\/O. Retrieved May 25, 2022 from https:\/\/github.com\/python-trio\/trio"},{"key":"e_1_3_2_1_22_1","volume-title":"Retrieved","author":"Smith J.","year":"2017","unstructured":"Nathaniel\u00a0J. Smith. 2017. Trio Documentation\u2014Debugging and instrumentation. Retrieved May 25, 2022 from https:\/\/trio.readthedocs.io\/en\/stable\/reference-lowlevel.html#debugging-and-instrumentation"},{"key":"e_1_3_2_1_23_1","volume-title":"Retrieved","author":"Smith J.","year":"2017","unstructured":"Nathaniel\u00a0J. Smith. 2017. Trio Documentation\u2014Spawning subprocesses. Retrieved May 25, 2022 from https:\/\/trio.readthedocs.io\/en\/stable\/reference-io.html?#spawning-subprocesses"},{"key":"e_1_3_2_1_24_1","volume-title":"Retrieved","author":"Smith J.","year":"2018","unstructured":"Nathaniel\u00a0J. Smith. 2018. Notes on structured concurrency, or: Go statement considered harmful. Retrieved May 25, 2022 from https:\/\/vorpus.org\/blog\/notes-on-structured-concurrency-or-go-statement-considered-harmful\/"},{"key":"e_1_3_2_1_25_1","volume-title":"Retrieved","author":"S\u00fastrik Martin","year":"2013","unstructured":"Martin S\u00fastrik. 2013. The Callback Hell. Retrieved May 25, 2022 from https:\/\/250bpm.com\/blog:24\/index.html"},{"key":"e_1_3_2_1_26_1","volume-title":"Event-driven architecture, state machines et al.Retrieved","author":"S\u00fastrik Martin","year":"2022","unstructured":"Martin S\u00fastrik. 2013. Event-driven architecture, state machines et al.Retrieved May 25, 2022 from https:\/\/250bpm.com\/blog:25\/index.html"},{"key":"e_1_3_2_1_27_1","volume-title":"Retrieved","author":"S\u00fastrik Martin","year":"2016","unstructured":"Martin S\u00fastrik. 2016. Getting rid of state machines (I). Retrieved May 25, 2022 from https:\/\/250bpm.com\/blog:69\/index.html"},{"key":"e_1_3_2_1_28_1","volume-title":"Retrieved","author":"S\u00fastrik Martin","year":"2016","unstructured":"Martin S\u00fastrik. 2016. Getting rid of state machines (II). Retrieved May 25, 2022 from https:\/\/250bpm.com\/blog:69\/index.html"},{"key":"e_1_3_2_1_29_1","volume-title":"Retrieved","author":"S\u00fastrik Martin","year":"2016","unstructured":"Martin S\u00fastrik. 2016. libdill. Retrieved May 25, 2022 from https:\/\/github.com\/sustrik\/libdill"},{"key":"e_1_3_2_1_30_1","volume-title":"Retrieved","author":"S\u00fastrik Martin","year":"2016","unstructured":"Martin S\u00fastrik. 2016. Structured Concurrency. Retrieved May 25, 2022 from https:\/\/250bpm.com\/blog:71\/index.html"},{"key":"e_1_3_2_1_31_1","volume-title":"Retrieved","author":"Authors The Go","year":"2009","unstructured":"The Go Authors. 2009. errgroup package. Retrieved May 25, 2022 from https:\/\/pkg.go.dev\/golang.org\/x\/sync\/errgroup"},{"key":"e_1_3_2_1_32_1","volume-title":"Retrieved","author":"Authors The Tornado","year":"2013","unstructured":"The Tornado Authors. 2013. Tornado. Retrieved May 25, 2022 from https:\/\/github.com\/tornadoweb\/tornado"},{"key":"e_1_3_2_1_33_1","volume-title":"Retrieved","author":"Authors The Twisted","year":"2022","unstructured":"The Twisted Authors. 2022. Twisted. Retrieved May 25, 2022 from https:\/\/twistedmatrix.com\/trac\/"},{"key":"e_1_3_2_1_34_1","volume-title":"Proceedings of HotOS. 19\u201324","author":"Von\u00a0Behren J\u00a0Robert","year":"2003","unstructured":"J\u00a0Robert Von\u00a0Behren, Jeremy Condit, and Eric\u00a0A Brewer. 2003. Why Events Are a Bad Idea (for High-Concurrency Servers). In Proceedings of HotOS. 19\u201324."},{"key":"e_1_3_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1165389.945471"},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/502034.502057"}],"event":{"name":"ICPP '22: 51st International Conference on Parallel Processing","location":"Bordeaux France","acronym":"ICPP '22"},"container-title":["Workshop Proceedings of the 51st International Conference on Parallel Processing"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3547276.3548519","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3547276.3548519","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T19:02:56Z","timestamp":1750186976000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3547276.3548519"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,8,29]]},"references-count":36,"alternative-id":["10.1145\/3547276.3548519","10.1145\/3547276"],"URL":"https:\/\/doi.org\/10.1145\/3547276.3548519","relation":{},"subject":[],"published":{"date-parts":[[2022,8,29]]},"assertion":[{"value":"2023-01-13","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}