On 20-03-2021 12:18, Dimitry Sibiryakov wrote:
20.03.2021 12:16, Mark Rotteveel wrote:
You could also send the packet, but defer processing of the response.
Sure there is some overhead in sending the packet, but not as much as
also waiting for the response.
Why this packet require response at all? Dropping may fail...?
Judging by code in server.cpp (ISC_STATUS
rem_port::end_statement(P_SQLFREE* free_stmt, PACKET* sendL)), yes it
can. Though probably DSQL_close is more susceptible to this than others
(you can't close the cursor of a statement without an open cursor, which
IMHO should just be a no-op).
Also, keep in mind that any action you take on the database can result
in an error (e.g. because the database was shutdown), so all requests
can get a response (with the exception of op_cancel where the
cancellation either does nothing), or the response piggy backs on the
response to the outstanding request that was cancelled.
Furthermore, being able to receive response is also what tells you the
action was complete.
Mark
--
Mark Rotteveel
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel