MicroPython:Библиотеки/micropython/micropython.heap locked(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =micropython.heap_locked()<ref>[http://docs.microp...»)
 
Нет описания правки
 
Строка 11: Строка 11:
Если REPL станет активен, когда куча будет заблокирована, то она будет принудительно разблокирована.
Если REPL станет активен, когда куча будет заблокирована, то она будет принудительно разблокирована.


Примечание: На большинстве портов функция heap_locked() по умолчанию не включена, и для ее включения требуется MICROPY_PY_MICROPYTHON_HEAP_LOCKED.  
{{Примечание1
|1=На большинстве портов функция heap_locked() по умолчанию не включена, и для ее включения требуется MICROPY_PY_MICROPYTHON_HEAP_LOCKED.}}


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python" enclose="div">

Текущая версия от 20:07, 7 мая 2022

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


micropython.heap_locked()[1]

  • micropython.heap_lock(), micropython.heap_unlock() и micropython.heap_locked() – выполняют блокировку и разблокировку кучи. Когда куча заблокирована, выделение памяти будет запрещено, но если попытка выделения памяти в куче все же будет предпринята, это вызовет ошибку MemoryError. Если куча в данный момент заблокирована, функция heap_locked() вернет True.

Эти функции можно вкладывать друг в друга. Вы можете вызвать heap_lock() несколько раз подряд, и это увеличит «глубину» блокировки. То есть, чтобы разблокировать кучу, вам затем нужно столько же раз вызвать функцию heap_unlock(). Функции heap_unlock() и heap_locked() возвращают текущую глубину блокировки в виде неотрицательного целого числа. Возврат «0» будет означать, что куча не заблокирована. Функция heap_unlock() возвращает значение после разблокировки. Если REPL станет активен, когда куча будет заблокирована, то она будет принудительно разблокирована.

Примечание

На большинстве портов функция heap_locked() по умолчанию не включена, и для ее включения требуется MICROPY_PY_MICROPYTHON_HEAP_LOCKED.

<syntaxhighlight lang="python" enclose="div">

См.также

Внешние ссылки