<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. 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. 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. 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. 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> 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. So from my POV it is time to do something. 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 <<a href="mailto:stephen.celis@gmail.com" class="">stephen.celis@gmail.com</a>> 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 <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> 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>