summaryrefslogtreecommitdiff
path: root/docs/examples/tutorial/parallelization/manual_work.py
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/tutorial/parallelization/manual_work.py')
-rw-r--r--docs/examples/tutorial/parallelization/manual_work.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/docs/examples/tutorial/parallelization/manual_work.py b/docs/examples/tutorial/parallelization/manual_work.py
new file mode 100644
index 000000000..d6b0167d9
--- /dev/null
+++ b/docs/examples/tutorial/parallelization/manual_work.py
@@ -0,0 +1,24 @@
+# tag: openmp
+
+from cython.parallel import parallel
+from cython.cimports.openmp import omp_get_thread_num
+import cython
+
+@cython.cfunc
+@cython.nogil
+def long_running_task1() -> cython.void:
+ pass
+
+@cython.cfunc
+@cython.nogil
+def long_running_task2() -> cython.void:
+ pass
+
+def do_two_tasks():
+ thread_num: cython.int
+ with cython.nogil, parallel(num_threads=2):
+ thread_num = omp_get_thread_num()
+ if thread_num == 0:
+ long_running_task1()
+ elif thread_num == 1:
+ long_running_task2()