aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual/threading/workerscript/workerscript.mjs
diff options
context:
space:
mode:
authorOliver Eftevaag <oliver.eftevaag@qt.io>2023-06-23 16:11:31 +0200
committerOliver Eftevaag <oliver.eftevaag@qt.io>2023-07-04 00:18:47 +0200
commit38373b81f37ccbf6ec66f43a70fe9622bbcc9593 (patch)
treeb66eeb48b0a982cb3fd19e18ca8468dec6c1700f /tests/manual/threading/workerscript/workerscript.mjs
parentadd2620e2e710bd2f594973f22f048314d7060d8 (diff)
convert threading example to manual tests
The threading example used a LauncherList to combine two different but related examples into one. I've now separated both into a shared directory called 'threading' Pick-to: 6.6 Change-Id: Iee8898e61adcf69dc67157a1eff5f6ac019a39ca Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'tests/manual/threading/workerscript/workerscript.mjs')
-rw-r--r--tests/manual/threading/workerscript/workerscript.mjs27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/manual/threading/workerscript/workerscript.mjs b/tests/manual/threading/workerscript/workerscript.mjs
new file mode 100644
index 0000000000..560c304b47
--- /dev/null
+++ b/tests/manual/threading/workerscript/workerscript.mjs
@@ -0,0 +1,27 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+//Will be initialized when WorkerScript{} is instantiated
+var cache = new Array(64);
+for (var i = 0; i < 64; i++)
+ cache[i] = new Array(64);
+
+function triangle(row, column) {
+ if (cache[row][column])
+ return cache[row][column]
+ if (column < 0 || column > row)
+ return -1;
+ if (column == 0 || column == row)
+ return 1;
+ return triangle(row-1, column-1) + triangle(row-1, column);
+}
+//! [0]
+WorkerScript.onMessage = function(message) {
+ //Calculate result (may take a while, using a naive algorithm)
+ var calculatedResult = triangle(message.row, message.column);
+ //Send result back to main thread
+ WorkerScript.sendMessage( { row: message.row,
+ column: message.column,
+ result: calculatedResult} );
+}
+//! [0]