File tree Expand file tree Collapse file tree 2 files changed +11
-4
lines changed
Expand file tree Collapse file tree 2 files changed +11
-4
lines changed Original file line number Diff line number Diff line change @@ -7,8 +7,10 @@ Write the date in place of the "Unreleased" in the case a new version is release
77
88### Fixed
99
10- - Explicitly specified ` "Content-Type": "application/json" ` in the request headers to
11- comply with stricter payload parsing in FastAPI >= 0.132.0.
10+ - Explicitly specified ` "Content-Type": "application/json" ` in the request
11+ headers to comply with stricter payload parsing in FastAPI >= 0.132.0.
12+ - Servers started by the new function ` tiled.client.simple ` did not stop
13+ cleanly at interpreter shutdown, causing a hangup.
1214
1315## v0.2.5 (2026-02-20)
1416
Original file line number Diff line number Diff line change 1- import atexit
21import collections
32import collections .abc
43import pathlib
4+ import threading
55import warnings
66from typing import Optional , Union
77from urllib .parse import parse_qs , urlparse
@@ -316,4 +316,9 @@ def _cleanup_servers():
316316
317317
318318SERVERS = [] # servers spawned using simple
319- atexit .register (_cleanup_servers )
319+ # The threading module has its own (internal) atexit
320+ # mechanism that runs at thread shutdown, prior to the atexit
321+ # mechanism that runs at interpreter shutdown.
322+ # We need to intervene at that layer to close the portal, or else
323+ # we will wait forever for a thread run by the portal to join().
324+ threading ._register_atexit (_cleanup_servers )
You can’t perform that action at this time.
0 commit comments