MicroPython:Библиотеки/micropython/micropython.heap lock()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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


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">

См.также

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