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