MicroPython:Библиотеки/micropython/micropython.heap lock(): различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) (Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} = micropython.heap_lock()<ref>[http://docs.micropy...») |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 11: | Строка 11: | ||
Если REPL станет активен, когда куча будет заблокирована, то она будет принудительно разблокирована. | Если REPL станет активен, когда куча будет заблокирована, то она будет принудительно разблокирована. | ||
{{Примечание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 станет активен, когда куча будет заблокирована, то она будет принудительно разблокирована.
<syntaxhighlight lang="python" enclose="div">