};
static Eo *_instance;
+//TIZEN_ONLY(20210423): recover init failure
+static Ecore_Idler *_init_idler = NULL;
+//
static int _init_count = 0;
//TIZEN_ONLY(20171108): make atspi_proxy work
static const char *_a11y_socket_address;
eina_hash_add(pd->cache, &obj, obj);
}
+//TIZEN_ONLY(20210423): recover init failure
+static Eina_Bool
+_init_job(void *data)
+{
+ _instance = efl_add_ref(ELM_ATSPI_BRIDGE_CLASS, NULL);
+ _init_count++;
+
+ /* try to create bridge object 10 times */
+ if (_instance || _init_count > 10)
+ {
+ _init_idler = NULL;
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ return ECORE_CALLBACK_RENEW;
+}
+//
+
void
_elm_atspi_bridge_init(void)
{
if (!_init_count)
{
_instance = efl_add_ref(ELM_ATSPI_BRIDGE_CLASS, NULL);
+
+ //TIZEN_ONLY(20210423): recover init failure
+ if (!_instance)
+ {
+ _init_idler = ecore_idler_add(_init_job, NULL);
+ }
+ //
+
_init_count = 1;
}
}
{
if (_init_count)
{
+ //TIZEN_ONLY(20210423): recover init failure
+ if (_init_idler) ecore_idler_del(_init_idler);
+ //
efl_unref(_instance);
_init_count = 0;
_instance = NULL;