<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 29, 2017 at 10:32 PM, Liu Hao <span dir="ltr"><<a href="mailto:lh_mouse@126.com" target="_blank">lh_mouse@126.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 2017/3/30 3:38, Eric Fiselier wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
All callers of `__libcpp_foo_trylock()` functions return bool so it made<br>
more sense to convert the return value to bool once inside the<br>
`__threading_support` interface rather than at each callsite. I'm not<br>
sure what incompatibility this causes since the callers should have been<br>
updated too.<br>
</blockquote></span>
Thanks for your reply.<br>
<br>
At the moment I have no idea how many external threading implementations there are, but they will ultimately be broken once the trunk version is released.</blockquote><div><br></div><div>There is one version that I know of, but the expectation of external threading implementations is that they track trunk very closely. There is absolutely no guarantee of API compatibility in the external threading interface. It's not meant to be a stable interface.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
However changing it now would require an ABI break, which is unfortunate<br>
but not insurmountable.<br>
</blockquote></span>
Err, true, but the trylock thing is already a break isn'it?</blockquote><div><br></div><div>Good point. Changing the try_lock() definition to use that may not be ABI breaking, but it may be a backwards incompatible change if other methods depend on certain invariants that try_lock() no longer maintains.</div><div><br></div><div>I would rather apply your suggested fix and remove the condition variable entirely so that we get the reduced class size as well. We have mechanisms for staging/guarding ABI breaking changes, so we might as well use them.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
Best regards,<br>
LH_Mouse<br>
<br>
</font></span></blockquote></div><br></div></div>