<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Really quickly:</div><br class=""><div><blockquote type="cite" class=""><div class=""><span style="color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; background-color: rgb(255, 255, 255);" class="">The following would also be legal:</span></div><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class="highlight highlight-source-swift" style="box-sizing: border-box; margin-bottom: 16px; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; background-color: rgb(255, 255, 255);"><pre style="box-sizing: border-box; overflow: auto; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 14px; margin-top: 0px; margin-bottom: 0px; line-height: 1.45; padding: 16px; background-color: rgb(247, 247, 247); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; word-wrap: normal; word-break: normal;" class="">networkRequest<span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">.</span>fetchData() { [<span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">weak</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">self</span>] result <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">in</span>
    <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">if</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">let</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">self</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">=</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">self</span> {
        <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">switch</span> result {
        <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">case</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">.</span>Succeeded(<span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">let</span> data):
            <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">self</span><span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">.</span>processData(data)

        <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">case</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">.</span>Failed(<span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">let</span> err):
            <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">self</span><span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">.</span>handleError(err)
        }
    }
}</pre></div><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; background-color: rgb(255, 255, 255);" class="">As would this:</p><div class="highlight highlight-source-swift" style="box-sizing: border-box; margin-bottom: 16px; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; background-color: rgb(255, 255, 255);"><pre style="box-sizing: border-box; overflow: auto; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 14px; margin-top: 0px; margin-bottom: 0px; line-height: 1.45; padding: 16px; background-color: rgb(247, 247, 247); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; word-wrap: normal; word-break: normal;" class="">networkRequest<span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">.</span>fetchData() { [<span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">weak</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">self</span>] result <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">in</span>
    <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">guard</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">self</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">!=</span> <span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 134, 179);">nil</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">else</span> { <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">return</span> }

    <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">let</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">self</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">=</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">self</span><span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">!</span>
</pre></div></div></div></div></blockquote><div>…isn’t there a race condition in this example (admittedly an *unlikely* one in most settings, but still…)?</div><div><br class=""></div><div><br class=""></div></div></body></html>