libfbclient handle signals on its own, so driver will get shutdown error on SIGTERM/SIGINT/SIGBREAK and there is no other possibilities to prevent it and softly stop process except handling shutdown manually:
Have no objection to add fb_shutdown_callback and related defs, but AFAIK fb_shutdown is replaced by iProvider.shutdown(), so it's available via api.master.get_dispatcher().shutdown()
…tions
libfbclient handle signals on its own, so driver will get shutdown error on SIGTERM/SIGINT/SIGBREAK and there is no other possibilities to prevent it and softly stop process except handling shutdown manually:
Example of fb_shutdown_callback usage:
@FB_SHUTDOWN_CALLBACK def driver_shutdown_callback(reason, mask, arg): return 1 if reason == fb_shutrsn_signal else 0
def api_loaded_hook(api): status = ISC_STATUS_ARRAY(20) api.fb_shutdown_callback(status, driver_shutdown_callback, fb_shut_confirmation, None) if db_api_error(status): raise exception_from_status(InternalError, status, "Error while adding shutdown callback")
add_hook(APIHook.LOADED, FirebirdAPI, api_loaded_hook)
Example of fb_shutdown usage:
get_api().fb_shutdown(0, fb_shutrsn_exit_called)