Doing some work on FlameRobin, looking at it's DB connection code. Basically, it sets up a worker thread to run the isc_attach_database call, the main GUI thread showing an interface while it waits.
The problem is, a user can cancel the connection attempt, as they are fickle like that. What to do with the connection thread? If you kill the thread, you leak any allocated resources. Maybe also screw up some state in the fbclient.dll. If you detach the thread, and the user also quits the app before timeout, you end up in undefined behaviour territory (although on Linux and Windows, it just seems drop everything quietly, which is okay) So, to be safe, is there a way to cancel the isc_attach_database call? I suspect the answer is 'no'. Scott Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel