Skip to content

Commit d99b593

Browse files
committed
test_zzz_integration: don't mix threading/multiprocessing
Use a Process instead of a Thread for ircserver, as we are already using Processes for the clients. This addresses the following 3.12 warning: /usr/lib/python3.12/multiprocessing/popen_fork.py:66: DeprecationWarning: This process (pid=1299670) is multi-threaded, use of fork() may lead to deadlocks in the child. self.pid = os.fork()
1 parent fb435fd commit d99b593

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

tests/test_zzz_integration.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import multiprocessing.synchronize
88
import pathlib
99
import socket
10-
import threading
1110
import time
1211
from typing import Any
1312

@@ -60,8 +59,8 @@ def on_pubmsg(self, _: irc.connection.Factory, __: irc.client.Event) -> None:
6059

6160

6261
@pytest.fixture(name="main")
63-
def fixture_main(tmp_path: pathlib.Path) -> threading.Thread:
64-
"""Fixture for ircstream main(), running it in a thread."""
62+
def fixture_main(tmp_path: pathlib.Path) -> multiprocessing.Process:
63+
"""Fixture for ircstream main(), running it in a Process."""
6564
# test a semi-stock config, with default ports etc.
6665
tmp_config = tmp_path / "ircstream-integration.conf"
6766
tmp_config.write_text(
@@ -84,7 +83,7 @@ def fixture_main(tmp_path: pathlib.Path) -> threading.Thread:
8483
)
8584
args = ("--config", str(tmp_config))
8685

87-
main = threading.Thread(target=ircstream.run, args=(args,), daemon=True)
86+
main = multiprocessing.Process(target=ircstream.run, args=(args,), daemon=True)
8887
main.start()
8988
time.sleep(0.1)
9089
if not main.is_alive():

0 commit comments

Comments
 (0)