Bug 1540590 Comment 1 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

It is the same result as our recent bugs of Bug 1537692 and Bug 1539119 that are caused by `VRGPUChild::ActorDestroy()` VRManager->Shutdown();.

It looks like a race condition problem between `compositorThread` and `mainthread` when both of them are accessing mVRDisplay. We were using` mTaskTimer->SetTarget(CompositorThreadHolder::Loop()->SerialEventTarget())` to call `VRManager::Run10msTasks`, but when VR process or thread shutdown, we call `vm->Shutdown()` at `VRGPUChild::ActorDestroy` from the main thread. I think we should make ``vm->Shutdown()` be  called in the compositor thread as well.
It has the same result as our recent bugs of Bug 1537692 and Bug 1539119 that are caused by `VRGPUChild::ActorDestroy()` VRManager->Shutdown();.

It looks like a race condition problem between `compositorThread` and `mainthread` when both of them are accessing mVRDisplay. We were using` mTaskTimer->SetTarget(CompositorThreadHolder::Loop()->SerialEventTarget())` to call `VRManager::Run10msTasks`, but when VR process or thread shutdown, we call `vm->Shutdown()` at `VRGPUChild::ActorDestroy` from the main thread. I think we should make ``vm->Shutdown()` be  called in the compositor thread as well.

Back to Bug 1540590 Comment 1