Fixed
Status Update
Comments
st...@google.com <st...@google.com>
aa...@google.com <aa...@google.com>
ad...@google.com <ad...@google.com>
bo...@google.com <bo...@google.com>
is...@google.com <is...@google.com>
bo...@google.com <bo...@google.com>
bo...@google.com <bo...@google.com>
ca...@google.com <ca...@google.com> #2
This bug should go to the emulator team. However, I do not have permission to file bug against them yet.
ha...@gmail.com <ha...@gmail.com> #3
Thank you for reporting this. I think we have a bad race condition in RecurrentTask
. When a callback fires, the QEMUTimer
is empty (see cb(opaque)
is unlock):
/* remove timer from the list before calling the callback */
timer_list->active_timers = ts->next;
ts->next = NULL;
ts->expire_time = -1;
cb = ts->cb;
opaque = ts->opaque;
/* run the callback (the timer list can be modified) */
qemu_mutex_unlock(&timer_list->active_timers_lock);
cb(opaque);
qemu_mutex_lock(&timer_list->active_timers_lock);
and timer_del_locked
simply removes the QEMUTimer
instance from the active_timers
list. I am not sure how to avoid race conditions here. Consider this:
1: void myCallback(void* arg) {
2:
3: someCall();
4:
5: }
- The control enters into
myCallback
and the thread is preempted before the function had a chance making any side effect (line2
here). ˜RecurrentTask
is called on a separate thread.- Since
myCallback
did not write anywhere that it is busy˜RecurrentTask
proceeds destroying the statemyCallback
is about to access. myCallback
wakes and proceeds accessing already destroyed data.
Either I am missing something or this API is incomplete.
Description
When using a folded (virtual) device, there's a fold icon on the toolbar. Tapping it will give you a fold and unfold icon to tap on, which will fold or unfold the device, respectively. In addition, (and this is where the user experience is frustrating) tapping the fold icon will also open the settings window. This is unnecessary and forces me to close the window each time, without making any changes in it (since all the settings I need are in the toolbar.)
STEPS TO REPRODUCE:
1. Create an 8" foldable AVD
2. Start the 8" foldable AVD
3. Tap the fold icon on the toolbar
ATTACH SCREENSHOTS/RECORDINGS OF THE ISSUE
ATTACH LOG FILES (Select Help > Show Log in Files, or Show Log in Finder on a Mac)
------------------
IMPORTANT: Please read
all required information.
------------------
Studio Build: 2020.3.1 Patch 3
Version of Gradle Plugin: n/a
Version of Gradle: n/a
Version of Java: n/a
OS: Windows 11 Pro 21H2 22000.258
Android Emulator Version: 30.9.5