summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/multi-module/wasm-apps/mD.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:19:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:19:22 +0000
commitc21c3b0befeb46a51b6bf3758ffa30813bea0ff0 (patch)
tree9754ff1ca740f6346cf8483ec915d4054bc5da2d /fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/multi-module/wasm-apps/mD.cpp
parentAdding upstream version 1.43.2. (diff)
downloadnetdata-c21c3b0befeb46a51b6bf3758ffa30813bea0ff0.tar.xz
netdata-c21c3b0befeb46a51b6bf3758ffa30813bea0ff0.zip
Adding upstream version 1.44.3.upstream/1.44.3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/multi-module/wasm-apps/mD.cpp')
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/multi-module/wasm-apps/mD.cpp74
1 files changed, 74 insertions, 0 deletions
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/multi-module/wasm-apps/mD.cpp b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/multi-module/wasm-apps/mD.cpp
new file mode 100644
index 000000000..d70998c08
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/multi-module/wasm-apps/mD.cpp
@@ -0,0 +1,74 @@
+#include <cstdlib>
+#include <cstdio>
+#include <iostream>
+
+static void
+bye_main()
+{
+ std::cout << "mD " << __FUNCTION__ << std::endl;
+}
+
+static void
+bye_setup()
+{
+ std::cout << "mD " << __FUNCTION__ << std::endl;
+}
+
+static void
+bye_func()
+{
+ std::cout << "mD " << __FUNCTION__ << std::endl;
+}
+
+void
+func3() __attribute__((__import_module__("mE"), __import_name__("func1")));
+
+void
+func4() __attribute__((__import_module__("mE"), __import_name__("func2")));
+
+void
+func1()
+{
+ std::printf("mD %s\n", __FUNCTION__);
+ if (std::atexit(bye_func) != 0) {
+ std::perror("register an atexit handler failed");
+ }
+ func3();
+}
+
+void
+func2()
+{
+ std::printf("mD %s\n", __FUNCTION__);
+ func4();
+}
+
+__attribute__((constructor)) void
+setup()
+{
+ std::cout << "mD " << __FUNCTION__ << std::endl;
+ if (std::atexit(bye_setup) != 0) {
+ std::perror("register an atexit handler failed");
+ }
+}
+
+__attribute__((destructor)) void
+teardown()
+{
+ std::cout << "mD " << __FUNCTION__ << std::endl;
+}
+
+int
+main()
+{
+ std::printf("mD %s\n", __FUNCTION__);
+
+ if (std::atexit(bye_main) != 0) {
+ std::perror("register an atexit handler failed");
+ return EXIT_FAILURE;
+ }
+
+ func1();
+ func2();
+ return EXIT_SUCCESS;
+}