У меня странная и очень случайная ошибка, возникающая в живых обоях OpenGL, которые я разрабатываю.
Мой код структурирован таким образом, что сцена OpenGL «останавливается», а затем «возобновляется», когда пользователь входит и выходит из экрана «Предпочтения». Первоначально это работало замечательно, но после реализации большего количества функций (таким образом создавая немного больше накладных расходов) живые обои иногда зависали при выходе из экрана настроек. Logcat выводит следующее сообщение (с которым я лично никогда раньше не сталкивался) и повторяет сообщение каждую секунду или около того, пока я не вернусь вручную с обоев:
W/SharedBufferStack(10715): waitForCondition(LockCondition) timed out (identity=4902, status=0). CPU may be pegged. trying again.
Что странно, так это случайность. Иногда это не происходит для 50 «предпочтений-выходов» или более. В других случаях это происходит чаще. Еще одна странность заключается в том, что если я попытаюсь открыть обои сразу после того, как произошла остановка, logcat начнет вылетать то же самое сообщение, и экран загрузки обоев зависнет примерно на пять секунд, после чего все возобновляется нормально без каких-либо ошибок сообщения.
У кого-нибудь есть какие-либо подсказки о том, как решить или обойти эту проблему?