{"id":"https://openalex.org/W2000226984","doi":"https://doi.org/10.1145/2338967.2336810","title":"Using program closures to make an application programming interface (API) implementation thread safe","display_name":"Using program closures to make an application programming interface (API) implementation thread safe","publication_year":2012,"publication_date":"2012-07-16","ids":{"openalex":"https://openalex.org/W2000226984","doi":"https://doi.org/10.1145/2338967.2336810","mag":"2000226984"},"language":"en","primary_location":{"id":"doi:10.1145/2338967.2336810","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2338967.2336810","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2012 Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5064288943","display_name":"Eitan Farchi","orcid":"https://orcid.org/0000-0002-3021-1488"},"institutions":[{"id":"https://openalex.org/I4210167297","display_name":"IBM Research - Haifa","ror":"https://ror.org/05rw9t746","country_code":"IL","type":"facility","lineage":["https://openalex.org/I1341412227","https://openalex.org/I4210114115","https://openalex.org/I4210167297"]}],"countries":["IL"],"is_corresponding":true,"raw_author_name":"Eitan Farchi","raw_affiliation_strings":["IBM Research, Israel","IBM Research - Israel"],"affiliations":[{"raw_affiliation_string":"IBM Research, Israel","institution_ids":["https://openalex.org/I4210167297"]},{"raw_affiliation_string":"IBM Research - Israel","institution_ids":["https://openalex.org/I4210167297"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5039882400","display_name":"Itai Segall","orcid":null},"institutions":[{"id":"https://openalex.org/I4210167297","display_name":"IBM Research - Haifa","ror":"https://ror.org/05rw9t746","country_code":"IL","type":"facility","lineage":["https://openalex.org/I1341412227","https://openalex.org/I4210114115","https://openalex.org/I4210167297"]}],"countries":["IL"],"is_corresponding":false,"raw_author_name":"Itai Segall","raw_affiliation_strings":["IBM Research, Israel","IBM Research - Israel"],"affiliations":[{"raw_affiliation_string":"IBM Research, Israel","institution_ids":["https://openalex.org/I4210167297"]},{"raw_affiliation_string":"IBM Research - Israel","institution_ids":["https://openalex.org/I4210167297"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5090925729","display_name":"Jo\u00e3o Louren\u00e7o","orcid":"https://orcid.org/0000-0002-8495-6442"},"institutions":[{"id":"https://openalex.org/I83558840","display_name":"Universidade Nova de Lisboa","ror":"https://ror.org/02xankh89","country_code":"PT","type":"education","lineage":["https://openalex.org/I83558840"]}],"countries":["PT"],"is_corresponding":false,"raw_author_name":"Jo\u00e3o M. Louren\u00e7o","raw_affiliation_strings":["Universidade Nova de Lisboa, Portugal"],"affiliations":[{"raw_affiliation_string":"Universidade Nova de Lisboa, Portugal","institution_ids":["https://openalex.org/I83558840"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5025833966","display_name":"Diogo Sousa","orcid":"https://orcid.org/0000-0002-6169-8591"},"institutions":[{"id":"https://openalex.org/I83558840","display_name":"Universidade Nova de Lisboa","ror":"https://ror.org/02xankh89","country_code":"PT","type":"education","lineage":["https://openalex.org/I83558840"]}],"countries":["PT"],"is_corresponding":false,"raw_author_name":"Diogo Sousa","raw_affiliation_strings":["Universidade Nova de Lisboa, Portugal"],"affiliations":[{"raw_affiliation_string":"Universidade Nova de Lisboa, Portugal","institution_ids":["https://openalex.org/I83558840"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5064288943"],"corresponding_institution_ids":["https://openalex.org/I4210167297"],"apc_list":null,"apc_paid":null,"fwci":0.3546,"has_fulltext":false,"cited_by_count":2,"citation_normalized_percentile":{"value":0.60746189,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":94},"biblio":{"volume":null,"issue":null,"first_page":"18","last_page":"24"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9991000294685364,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12127","display_name":"Software System Performance and Reliability","score":0.9955000281333923,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.833797037601471},{"id":"https://openalex.org/keywords/thread","display_name":"Thread (computing)","score":0.7937678694725037},{"id":"https://openalex.org/keywords/interleaving","display_name":"Interleaving","score":0.6248782873153687},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.4751182198524475},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.4471118450164795},{"id":"https://openalex.org/keywords/application-programming-interface","display_name":"Application programming interface","score":0.4456527531147003},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.3618859052658081}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.833797037601471},{"id":"https://openalex.org/C138101251","wikidata":"https://www.wikidata.org/wiki/Q213092","display_name":"Thread (computing)","level":2,"score":0.7937678694725037},{"id":"https://openalex.org/C28034677","wikidata":"https://www.wikidata.org/wiki/Q17092530","display_name":"Interleaving","level":2,"score":0.6248782873153687},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.4751182198524475},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.4471118450164795},{"id":"https://openalex.org/C99613125","wikidata":"https://www.wikidata.org/wiki/Q165194","display_name":"Application programming interface","level":2,"score":0.4456527531147003},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.3618859052658081}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2338967.2336810","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2338967.2336810","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2012 Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"display_name":"Peace, Justice and strong institutions","score":0.4300000071525574,"id":"https://metadata.un.org/sdg/16"}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":6,"referenced_works":["https://openalex.org/W1965462925","https://openalex.org/W2039350582","https://openalex.org/W2039404410","https://openalex.org/W2040117794","https://openalex.org/W2125533170","https://openalex.org/W2149298504"],"related_works":["https://openalex.org/W1655266410","https://openalex.org/W2389051085","https://openalex.org/W2330343234","https://openalex.org/W1901012776","https://openalex.org/W2463883322","https://openalex.org/W2229382548","https://openalex.org/W2391789612","https://openalex.org/W2814468324","https://openalex.org/W2023832055","https://openalex.org/W2082485924"],"abstract_inverted_index":{"Consider":[0],"a":[1,12,24,62,117],"set":[2],"of":[3,11,51,87,99,102],"methods":[4,29,88],"implementing":[5],"an":[6,103],"Application":[7],"Programming":[8],"Interface":[9],"(API)":[10],"given":[13],"library":[14,68],"or":[15,69,112],"program":[16,52],"module":[17,70],"that":[18],"is":[19],"to":[20,34,43,65],"be":[21,35,59],"used":[22,64],"in":[23,61],"multithreaded":[25],"setting.":[26],"If":[27],"those":[28],"were":[30],"not":[31],"originally":[32],"designed":[33],"thread":[36,72],"safe,":[37,73],"races":[38,80,94],"and":[39,54],"deadlocks":[40],"are":[41],"expected":[42],"happen.":[44],"This":[45],"work":[46],"introduces":[47],"the":[48,67,76,84,90,97,100],"novel":[49],"concept":[50],"closure":[53],"describes":[55],"how":[56],"it":[57,109],"can":[58],"applied":[60],"methodology":[63],"make":[66],"implementation":[71],"by":[74,82,106],"identifying":[75],"high":[77],"level":[78],"data":[79,93,118],"introduced":[81],"interleaving":[83],"parallel":[85],"execution":[86],"from":[89,96],"API.":[91],"High-level":[92],"result":[95],"misspecification":[98],"scope":[101],"atomic":[104,114],"block,":[105],"wrongly":[107],"splitting":[108],"into":[110],"two":[111],"more":[113],"blocks":[115],"sharing":[116],"dependency.":[119]},"counts_by_year":[{"year":2017,"cited_by_count":1},{"year":2015,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
