summaryrefslogtreecommitdiffstatshomepage
path: root/py/gc.c
diff options
context:
space:
mode:
authorDave Hylands <dhylands@gmail.com>2014-06-30 22:49:21 -0700
committerDave Hylands <dhylands@gmail.com>2014-06-30 22:49:21 -0700
commit2fe841d2fa022bc7f546ddd77a79eaa0150bdf87 (patch)
tree73b3359c114fd7462654dff2297e09eecaaca11d /py/gc.c
parent8993fb6cf0677ce980ab56cbad326e4e6bc47811 (diff)
downloadmicropython-2fe841d2fa022bc7f546ddd77a79eaa0150bdf87.tar.gz
micropython-2fe841d2fa022bc7f546ddd77a79eaa0150bdf87.zip
Try not to cause a MemoryError when raising an exception during nterrupt handling.
Step 1 fixes #732
Diffstat (limited to 'py/gc.c')
-rw-r--r--py/gc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/py/gc.c b/py/gc.c
index 65bfea0b35..7aa5bc326e 100644
--- a/py/gc.c
+++ b/py/gc.c
@@ -172,6 +172,10 @@ void gc_unlock(void) {
gc_lock_depth--;
}
+bool gc_is_locked(void) {
+ return gc_lock_depth != 0;
+}
+
#define VERIFY_PTR(ptr) ( \
(ptr & (BYTES_PER_BLOCK - 1)) == 0 /* must be aligned on a block */ \
&& ptr >= (machine_uint_t)gc_pool_start /* must be above start of pool */ \