The CEC adapter can only be open by one caller at any one time.
If init() is called when the adapter is already open, the current code is meant to destroy the adapter resource and then raise an exception. However, I found that the code freezes when it attempts to destroy the adapter.
CECDestroy(CEC_adapter);
CEC_adapter = NULL;
I found the following code fixed it for me:
Py_BEGIN_ALLOW_THREADS
CECDestroy(CEC_adapter);
CEC_adapter = NULL;
Py_END_ALLOW_THREADS
The CEC adapter can only be open by one caller at any one time.
If init() is called when the adapter is already open, the current code is meant to destroy the adapter resource and then raise an exception. However, I found that the code freezes when it attempts to destroy the adapter.
CECDestroy(CEC_adapter); CEC_adapter = NULL;
I found the following code fixed it for me:
Py_BEGIN_ALLOW_THREADS CECDestroy(CEC_adapter); CEC_adapter = NULL; Py_END_ALLOW_THREADS