{
Tizen.Log.Debug("NUI", $"DisposeQueue is destroyed\n");
initialied = false;
+ if (processorRegistered && ProcessorController.Instance.Initialized)
+ {
+ processorRegistered = false;
+ ProcessorController.Instance.ProcessorOnceEvent -= TriggerProcessDisposables;
+ }
}
public static DisposeQueue Instance
disposables.Add(disposable);
}
- if (initialied && eventThreadCallback != null && !eventThreadCallbackTriggered)
+ if (initialied && eventThreadCallback != null)
+ {
+ if (!eventThreadCallbackTriggered)
+ {
+ eventThreadCallbackTriggered = true;
+ eventThreadCallback.Trigger();
+ }
+ }
+ else
{
- eventThreadCallbackTriggered = true;
- eventThreadCallback.Trigger();
+ // Flush Disposable queue synchronously if it is not initialized yet.
+ // TODO : Need to check thread here if we need.
+ ProcessDisposables();
}
}
{
processorRegistered = false;
- if (eventThreadCallback != null && !eventThreadCallbackTriggered)
+ if (initialied && eventThreadCallback != null)
+ {
+ if (!eventThreadCallbackTriggered)
+ {
+ eventThreadCallbackTriggered = true;
+ eventThreadCallback.Trigger();
+ }
+ }
+ else
{
- eventThreadCallbackTriggered = true;
- eventThreadCallback.Trigger();
+ // Flush Disposable queue synchronously if it is not initialized yet.
+ // TODO : Need to check thread here if we need.
+ ProcessDisposables();
}
}