<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="">I agree that property behaviors would be more compelling due to the specific way that I motivated the example, but if you instead imagine the analogous case for a function (that can only be called from specialQueue), we are back here again.<div class=""><br class=""></div><div class="">I actually believe we need–and I would prefer–"function behaviors" (!) as a solution to this problem, and property behaviors as a solution to my example. &nbsp;I mentioned this in my review of the (rejected) SE-0030.</div><div class=""><br class=""></div><div class="">However, property behaviors was tabled/rejected, and "function behaviors" have not been proposed, as far as I know, except in a passing remark in my review. &nbsp;So regarding solutions along that line, while you and I can agree they're superior, we seem to be in the minority.</div><div class=""><br class=""></div><div class="">This is one of those cases where in my view it is better go somewhere than stay here. &nbsp;The community seems to have decided for the present not to go the "behavioral" direction, I would be in favor of reconsidering that decision, but unfortunately that question is not the one presently before us. &nbsp;This proposal is not the best solution to my problems, but it is preferable to no solution.</div><div class=""><br class=""></div><div class="">Apple folk may want to check out <a href="rdar://21435592" class="">rdar://21435592</a>&nbsp;for a spookily similar feature request to this proposal that I logged way back in June 2015, and here I am saying most of the same things now that I said then. &nbsp;So from my POV it is time to do something. &nbsp;The additional time I've let this bake has caused me to reflect on this exact solution as being less excellent than I originally thought, but the problem itself still feels as fresh as it was 6 months ago.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div><blockquote type="cite" class=""><div class="">On Feb 27, 2016, at 7:52 AM, Stephen Celis &lt;<a href="mailto:stephen.celis@gmail.com" class="">stephen.celis@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><blockquote type="cite" class="">On Feb 27, 2016, at 12:46 AM, Drew Crawford via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><br class="">What i mean here is simply [...]<br class=""></blockquote><br class="">Thanks Drew! This example is much more compelling than the one in the proposal, and I hope there are more that come to light in this thread. I do, however, think that property behaviors would be a better solution to that particular problem:<br class=""><br class=""><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0030-property-behavior-decls.md#synchronized-property-access" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0030-property-behavior-decls.md#synchronized-property-access</a><br class=""><br class="">--<br class="">Stephen</div></div></blockquote></div><br class=""></div></body></html>