On 3/23/21 5:37 PM, Jiří Činčura wrote:
Hi,

I found small difference in behavior regarding cancellation (fb_cancel_raise). When 
working over the wire I can send cancellation whenever I want it is "just 
fine". But doing the same when using Embedded results in isc_nothing_to_cancel being 
returned. Why is that?

With the cancellation there's always race condition that the currently 
executing thing will finish right before the cancellation is sent/processed.

Obviously, I can ignore this particular error and "hide" it from user. I'm 
interested in the reasoning.


First of all arrived embedded version (though yes - it was not published in official reeases), and it works rather precise - races avoided due to taking mutex in yValve. In case of TCP link we also can try to check - do we have something executing on remote server currently? But here that check does not guarantee something - taking lock for a network turnover time is unappropriate.

So the question is to make embedded variant same unprecise as we can have remote one. I've preferred to keep it as precise as possible, and yes - everyone can ignore that error.




Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to