The most likely explanation for the lock count not decreasing when async results are freed is that they are being cached. I may as well add that. The async result leak in test_source_resolver() is a bug in cancel cookies, but in native it's something else; probably their bug.