| 714 | } |
| 715 | |
| 716 | void ensure_builtin_ui_registered() { |
| 717 | ensure_initialized(); |
| 718 | if (!can_acquire_gil()) { |
| 719 | LOG_WARN("Python GIL state not ready, skipping builtin UI registration"); |
| 720 | return; |
| 721 | } |
| 722 | |
| 723 | const GilAcquire gil; |
| 724 | std::lock_guard lock(g_plugin_init_mutex); |
| 725 | if (!ensure_python_bridge_ready_locked()) { |
| 726 | return; |
| 727 | } |
| 728 | ensure_builtin_ui_ready_locked(); |
| 729 | } |
| 730 | |
| 731 | void ensure_plugins_loaded() { |
| 732 | ensure_initialized(); |
no test coverage detected