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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} = micropython.heap_lock()<ref>[http://docs.micropy...»)
 
Нет описания правки
 
Строка 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:06, 7 мая 2022

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


micropython.heap_lock()[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">

См.также

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