{'fraction_non_alphanumeric': 0.03816131830008673, 'fraction_numerical': 0.0, 'mean_word_length': 5.010416666666667, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Constructing multi-reader atomic values from non-atomic values

We present a simple, efficient protocol for constructing single-writer, multi-reader atomic shared values from singlewriter, multi-reader non-atomic (%egular”) shared values. This solves the last open problem in the Concurrent Reading While Writing hierarchy. It is now known how to construct a multi-writer, multi-reader atomic shared value given only single-reader, single-writer non-atomic (“safe”) shared bits. The protocol given here is remarkably simple and efficient. The total amount of shared space to communicate a shared value with a range of V to n readers is just O(n + log IV]) multi-reader regular bits, which is provably optimal (with very small constant factors). Similarly, the amount of communication (reading and writing of copies of the simulated shared values) required by readers and writers is also optimal. The simplicity of the protocol results in a short and easily understood proof of correctness. Great care has been taken to completely describe the protocol to avoid ambiguities. We also describe several variations of the protocol which optimize other goals.