From 73be07df741f45c68e9d0a32eed4b478f7a17da3 Mon Sep 17 00:00:00 2001 From: Zion Orent Date: Thu, 19 Feb 2015 08:56:43 -0500 Subject: [PATCH] upm: new upm.i JS interface file with code to call v8 garbage collector Signed-off-by: Zion Orent Signed-off-by: Jon Trulson Signed-off-by: Mihai Tudor Panu --- src/upm.i | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/upm.i b/src/upm.i index ee88e07e..28cc4268 100644 --- a/src/upm.i +++ b/src/upm.i @@ -2,3 +2,22 @@ %include "stdint.i" %typemap(out) mraa_result_t = int; + +#if (SWIG_JAVASCRIPT_V8) +%{ + // Because there's no guarantee that v8 will ever call garbage collection, + // we're adding a function that will allow a user to call it manually + void cleanUp() + { + // Call the v8 garbage collector as long as there is memory to clean up + // See https://codereview.chromium.org/412163003 for this API change +#if (SWIG_V8_VERSION < 0x032838) + while (!v8::V8::IdleNotification()) +#else + while (!v8::Isolate::GetCurrent()->IdleNotification(1000)) +#endif + {;} + } +%} +void cleanUp(); +#endif