Don't start async_data_handler until rig is fully opened.

Let the <model>_rig_open() finish its setup before trying to read status.

(cherry picked from commit 7fa0c863f2)
Hamlib-4.6.3
George Baltz N3GB 2025-05-30 12:39:29 -04:00 zatwierdzone przez Nate Bargmann
rodzic 3249598cbf
commit 3abac28767
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: FB2C5130D55A8819
1 zmienionych plików z 9 dodań i 25 usunięć

Wyświetl plik

@ -1422,22 +1422,6 @@ int HAMLIB_API rig_open(RIG *rig)
RETURNFUNC2(status);
}
#if defined(HAVE_PTHREAD)
if (!skip_init)
{
status = async_data_handler_start(rig);
if (status < 0)
{
port_close(rp, rp->type.rig);
rs->comm_status = RIG_COMM_STATUS_ERROR;
RETURNFUNC2(status);
}
}
#endif
rs->comm_state = 1;
rig_debug(RIG_DEBUG_VERBOSE, "%s: %p rs->comm_state==1?=%d\n", __func__,
&rs->comm_state,
@ -1488,15 +1472,6 @@ int HAMLIB_API rig_open(RIG *rig)
if (status != RIG_OK)
{
remove_opened_rig(rig);
#if defined(HAVE_PTHREAD)
if (!skip_init)
{
async_data_handler_stop(rig);
morse_data_handler_stop(rig);
}
#endif
port_close(rp, rp->type.rig);
memcpy(&rs->rigport_deprecated, rp, sizeof(hamlib_port_t_deprecated));
rs->comm_state = 0;
@ -1542,6 +1517,15 @@ int HAMLIB_API rig_open(RIG *rig)
#if defined(HAVE_PTHREAD)
status = async_data_handler_start(rig);
if (status < 0)
{
port_close(rp, rp->type.rig);
rs->comm_status = RIG_COMM_STATUS_ERROR;
RETURNFUNC2(status);
}
// Some models don't support CW so don't need morse handler
if (rig->caps->send_morse)
{