mirror of https://github.com/pybind/pybind11
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
826 B
42 lines
826 B
import threading |
|
|
|
from pybind11_tests import thread as m |
|
|
|
|
|
class Thread(threading.Thread): |
|
def __init__(self, fn): |
|
super().__init__() |
|
self.fn = fn |
|
self.e = None |
|
|
|
def run(self): |
|
try: |
|
for i in range(10): |
|
self.fn(i, i) |
|
except Exception as e: |
|
self.e = e |
|
|
|
def join(self): |
|
super().join() |
|
if self.e: |
|
raise self.e |
|
|
|
|
|
def test_implicit_conversion(): |
|
a = Thread(m.test) |
|
b = Thread(m.test) |
|
c = Thread(m.test) |
|
for x in [a, b, c]: |
|
x.start() |
|
for x in [c, b, a]: |
|
x.join() |
|
|
|
|
|
def test_implicit_conversion_no_gil(): |
|
a = Thread(m.test_no_gil) |
|
b = Thread(m.test_no_gil) |
|
c = Thread(m.test_no_gil) |
|
for x in [a, b, c]: |
|
x.start() |
|
for x in [c, b, a]: |
|
x.join()
|
|
|