File: barrier.pxd

package info (click to toggle)
cython 3.1.6%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 19,932 kB
  • sloc: python: 92,172; ansic: 19,275; cpp: 1,407; xml: 1,031; javascript: 511; makefile: 373; sh: 223; sed: 11
file content (22 lines) | stat: -rw-r--r-- 769 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
cdef extern from "<barrier>" namespace "std" nogil:
    # Note on thread safety:
    # For any of the blocking functions here you should be very
    # careful to ensure that you are not deadlocked on the GIL.
    cdef cppclass barrier[CompletionFunction = *]:
        cppclass arrival_token:
            pass

        barrier(ptrdiff_t expected) except+
        # We *really* advise that CompletionFunction is nogil (but because it's a template, can't enforce it)
        barrier(ptrdiff_t expected, CompletionFunction f) except+

        arrival_token arrive() except+
        arrival_token arrive(ptrdiff_t n) except+

        void wait(arrival_token t) except+

        void arrive_and_wait() except+

        void arrive_and_drop() except+

        ptrdiff_t max()