{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:23:14Z","timestamp":1750306994076,"version":"3.41.0"},"reference-count":20,"publisher":"Association for Computing Machinery (ACM)","issue":"5","license":[{"start":{"date-parts":[[2013,5,1]],"date-time":"2013-05-01T00:00:00Z","timestamp":1367366400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Queue"],"published-print":{"date-parts":[[2013,5]]},"abstract":"<jats:p>Developers often take a proactive approach to software design, especially those from cultures valuing industriousness over procrastination. Lazy approaches, however, have proven their value, with examples including reference counting, garbage collection, and lazy evaluation. This structured deferral takes the form of synchronization via procrastination, specifically reference counting, hazard pointers, and RCU (read-copy-update).<\/jats:p>","DOI":"10.1145\/2488364.2488549","type":"journal-article","created":{"date-parts":[[2020,9,3]],"date-time":"2020-09-03T04:16:40Z","timestamp":1599106600000},"page":"20-39","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Structured Deferral: Synchronization via Procrastination"],"prefix":"10.1145","volume":"11","author":[{"given":"Paul E.","family":"McKenney","sequence":"first","affiliation":[{"name":"IBM"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2013,5]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Proceedings of the 2003 Usenix Annual Technical Conference: 297-310","author":"Arcangeli A.","year":"2003","unstructured":"Arcangeli , A. , Cao , M. , McKenney , P. E. , Sarma , D. 2003 . Using read-copy update techniques for System V IPC in the Linux 2.5 kernel . In Proceedings of the 2003 Usenix Annual Technical Conference: 297-310 . Arcangeli, A., Cao, M., McKenney, P. E., Sarma, D. 2003. Using read-copy update techniques for System V IPC in the Linux 2.5 kernel. In Proceedings of the 2003 Usenix Annual Technical Conference: 297-310."},{"key":"e_1_2_1_2_1","volume-title":"Working draft, standard for programming language C++","author":"Becker P.","year":"2011","unstructured":"Becker , P. 2011. Working draft, standard for programming language C++ ; http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/ 2011 \/n3242.pdf. Becker, P. 2011. Working draft, standard for programming language C++; http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2011\/n3242.pdf."},{"key":"e_1_2_1_3_1","unstructured":"Corbet J. 2012. ACCESS_ONCE(); http:\/\/lwn.net\/Articles\/508991\/.  Corbet J. 2012. ACCESS_ONCE(); http:\/\/lwn.net\/Articles\/508991\/."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2011.159"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1147\/sj.472.0221"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2414729.2414731"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2007.04.010"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01397280"},{"key":"e_1_2_1_9_1","first-page":"168","article-title":"Passive serialization in a multitasking environment","volume":"4","author":"Hennessy J. P.","year":"1989","unstructured":"Hennessy , J. P. , Osisek , D. L. , Seigh II, J. W. 1989 . Passive serialization in a multitasking environment . U.S. Patent 4 ,809, 168 (lapsed). Hennessy, J. P., Osisek, D. L., Seigh II, J. W. 1989. Passive serialization in a multitasking environment. U.S. Patent 4,809,168 (lapsed).","journal-title":"U.S. Patent"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.5555\/645959.676129"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2012.12"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/320613.320619"},{"key":"e_1_2_1_14_1","volume-title":"The RCU API","author":"McKenney P. E.","year":"1885","unstructured":"McKenney , P. E. 2010. The RCU API ; http:\/\/lwn.net\/Articles\/4 1885 3\/. McKenney, P. E. 2010. The RCU API; http:\/\/lwn.net\/Articles\/418853\/."},{"key":"e_1_2_1_15_1","volume-title":"RCU usage in the Linux kernel: one decade later","author":"McKenney P. E.","year":"2013","unstructured":"McKenney , P. E. , Boyd-Wickizer , S. , Walpole , J. 2013. RCU usage in the Linux kernel: one decade later ; http:\/\/rdrop.com\/users\/paulmck\/techreports\/RCUUsage. 2013 .02.24a.pdf. McKenney, P. E., Boyd-Wickizer, S., Walpole, J. 2013. RCU usage in the Linux kernel: one decade later; http:\/\/rdrop.com\/users\/paulmck\/techreports\/RCUUsage.2013.02.24a.pdf."},{"key":"e_1_2_1_16_1","first-page":"509","article-title":"Read-copy-update: using execution history to solve concurrency problems","author":"McKenney P. E.","year":"1998","unstructured":"McKenney , P. E. , Slingwine , J. D. 1998 . Read-copy-update: using execution history to solve concurrency problems . In Parallel and Distributed Computing and Systems : 509 - 518 . McKenney, P. E., Slingwine, J. D. 1998. Read-copy-update: using execution history to solve concurrency problems. In Parallel and Distributed Computing and Systems: 509-518.","journal-title":"Parallel and Distributed Computing and Systems"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2004.8"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01491891"},{"key":"e_1_2_1_20_1","volume-title":"Concurrent programming with the Disruptor","author":"Sutton A.","year":"2013","unstructured":"Sutton , A. 2013. Concurrent programming with the Disruptor ; http:\/\/lca 2013 .linux.org.au\/schedule\/30168\/view_talk. Sutton, A. 2013. Concurrent programming with the Disruptor; http:\/\/lca2013.linux.org.au\/schedule\/30168\/view_talk."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/224964.224988"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1435417.1435432"}],"container-title":["Queue"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2488364.2488549","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2488364.2488549","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T08:48:41Z","timestamp":1750236521000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2488364.2488549"}},"subtitle":["We simply do not have a synchronization mechanism that can enforce mutual exclusion."],"short-title":[],"issued":{"date-parts":[[2013,5]]},"references-count":20,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2013,5]]}},"alternative-id":["10.1145\/2488364.2488549"],"URL":"https:\/\/doi.org\/10.1145\/2488364.2488549","relation":{},"ISSN":["1542-7730","1542-7749"],"issn-type":[{"type":"print","value":"1542-7730"},{"type":"electronic","value":"1542-7749"}],"subject":[],"published":{"date-parts":[[2013,5]]},"assertion":[{"value":"2013-05-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}