summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--native_client_sdk/src/libraries/nacl_io/nacl_io.cc4
-rw-r--r--native_client_sdk/src/libraries/nacl_io/nacl_io.h8
-rw-r--r--native_client_sdk/src/libraries/ppapi_simple/ps_main.cc4
3 files changed, 15 insertions, 1 deletions
diff --git a/native_client_sdk/src/libraries/nacl_io/nacl_io.cc b/native_client_sdk/src/libraries/nacl_io/nacl_io.cc
index 1459ab1..b1134f1 100644
--- a/native_client_sdk/src/libraries/nacl_io/nacl_io.cc
+++ b/native_client_sdk/src/libraries/nacl_io/nacl_io.cc
@@ -12,6 +12,10 @@ void nacl_io_init() {
ki_init(NULL);
}
+void nacl_io_uninit() {
+ ki_uninit();
+}
+
void nacl_io_init_ppapi(PP_Instance instance, PPB_GetInterface get_interface) {
ki_init_ppapi(NULL, instance, get_interface);
}
diff --git a/native_client_sdk/src/libraries/nacl_io/nacl_io.h b/native_client_sdk/src/libraries/nacl_io/nacl_io.h
index a26f39d..21abc34 100644
--- a/native_client_sdk/src/libraries/nacl_io/nacl_io.h
+++ b/native_client_sdk/src/libraries/nacl_io/nacl_io.h
@@ -51,6 +51,14 @@ void nacl_io_init();
*/
void nacl_io_init_ppapi(PP_Instance instance, PPB_GetInterface get_interface);
+/**
+ * Uninitialize nacl_io.
+ *
+ * This removes interception for POSIX C-library function and releases
+ * any associated resources.
+ */
+void nacl_io_uninit();
+
void nacl_io_set_exit_callback(nacl_io_exit_callback_t exit_callback,
void* user_data);
diff --git a/native_client_sdk/src/libraries/ppapi_simple/ps_main.cc b/native_client_sdk/src/libraries/ppapi_simple/ps_main.cc
index 3b634f9..8ab1213 100644
--- a/native_client_sdk/src/libraries/ppapi_simple/ps_main.cc
+++ b/native_client_sdk/src/libraries/ppapi_simple/ps_main.cc
@@ -43,5 +43,7 @@ int main(int argc, char* argv[]) {
// By default, or if not running in the browser we simply run the main
// entry point directly, on the main thread.
nacl_io_init();
- return PSUserMainGet()(argc, argv);
+ int rtn = PSUserMainGet()(argc, argv);
+ nacl_io_uninit();
+ return rtn;
}