{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,23]],"date-time":"2023-10-23T04:59:15Z","timestamp":1698037155813},"reference-count":8,"publisher":"Wiley","issue":"7","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":6330,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1989,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>In a programming environment with both concurrency and automatic garbage collection, the allocation and initialization of a new record is a sensitive matter: if it is interrupted half\u2010way through, the allocating process may be in a state that the garbage collector cannot understand. In particular, the collector will not know which words of the new record have been initialized and which are meaningless (and unsafe to traverse).<\/jats:p><jats:p>For this reason, parallel implementations usually use a locking or semaphore mechanism to ensure that allocation is an atomic operation. The locking significantly adds to the cost of allocation. This paper shows how allocation can run extremely quickly even in a multi\u2010thread environment: open\u2010coded, without locking.<\/jats:p>","DOI":"10.1002\/spe.4380190704","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T21:05:20Z","timestamp":1163797520000},"page":"703-705","source":"Crossref","is-referenced-by-count":6,"title":["Allocation without locking"],"prefix":"10.1002","volume":"19","author":[{"given":"Andrew W.","family":"Appel","sequence":"first","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"publisher","DOI":"10.1145\/363269.363280"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/362790.362798"},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(87)90175-X"},{"key":"e_1_2_1_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/358141.358147"},{"key":"e_1_2_1_6_2","doi-asserted-by":"crossref","unstructured":"DavidUngar \u2018Generation scavenging: a non\u2010disruptive high performance storage reclamation algorithm\u2019 inSIGPLAN Notices (Proc. ACM SIGSOFTISIGPLAN Software Eng. Symp. on Practical Software Development Environments) 1984 pp.157\u2013167.","DOI":"10.1145\/390010.808261"},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-18317-5_17"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/359460.359470"},{"key":"e_1_2_1_9_2","doi-asserted-by":"crossref","unstructured":"Andrew W.Appel John R.EllisandKaiLi \u2018Realtime concurrent collection on stock multiprocessors\u2019 inSIGPLAN Notices (Proc. SIGPLAN \u203288 Conf. on Prog. Lang. Design and Implementation) 1988 pp.11\u201320.","DOI":"10.1145\/960116.53992"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380190704","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380190704","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,22]],"date-time":"2023-10-22T09:30:00Z","timestamp":1697967000000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380190704"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1989,7]]},"references-count":8,"journal-issue":{"issue":"7","published-print":{"date-parts":[[1989,7]]}},"alternative-id":["10.1002\/spe.4380190704"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380190704","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1989,7]]}}}