xoscar 0.4.3__tar.gz → 0.4.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of xoscar might be problematic. Click here for more details.

Files changed (81) hide show
  1. {xoscar-0.4.3/xoscar.egg-info → xoscar-0.4.4}/PKG-INFO +1 -1
  2. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/core.py +38 -2
  3. {xoscar-0.4.3 → xoscar-0.4.4/xoscar.egg-info}/PKG-INFO +1 -1
  4. {xoscar-0.4.3 → xoscar-0.4.4}/MANIFEST.in +0 -0
  5. {xoscar-0.4.3 → xoscar-0.4.4}/pyproject.toml +0 -0
  6. {xoscar-0.4.3 → xoscar-0.4.4}/setup.cfg +0 -0
  7. {xoscar-0.4.3 → xoscar-0.4.4}/setup.py +0 -0
  8. {xoscar-0.4.3 → xoscar-0.4.4}/versioneer.py +0 -0
  9. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/__init__.py +0 -0
  10. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/_utils.pxd +0 -0
  11. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/_utils.pyx +0 -0
  12. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/_version.py +0 -0
  13. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/aio/__init__.py +0 -0
  14. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/aio/base.py +0 -0
  15. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/aio/file.py +0 -0
  16. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/aio/lru.py +0 -0
  17. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/aio/parallelism.py +0 -0
  18. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/api.py +0 -0
  19. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backend.py +0 -0
  20. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/__init__.py +0 -0
  21. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/allocate_strategy.py +0 -0
  22. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/communication/__init__.py +0 -0
  23. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/communication/base.py +0 -0
  24. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/communication/core.py +0 -0
  25. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/communication/dummy.py +0 -0
  26. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/communication/errors.py +0 -0
  27. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/communication/socket.py +0 -0
  28. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/communication/ucx.py +0 -0
  29. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/communication/utils.py +0 -0
  30. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/config.py +0 -0
  31. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/context.py +0 -0
  32. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/indigen/__init__.py +0 -0
  33. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/indigen/backend.py +0 -0
  34. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/indigen/driver.py +0 -0
  35. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/indigen/pool.py +0 -0
  36. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/message.pyx +0 -0
  37. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/pool.py +0 -0
  38. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/router.py +0 -0
  39. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/test/__init__.py +0 -0
  40. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/test/backend.py +0 -0
  41. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/backends/test/pool.py +0 -0
  42. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/batch.py +0 -0
  43. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/collective/__init__.py +0 -0
  44. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/collective/common.py +0 -0
  45. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/collective/core.py +0 -0
  46. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/collective/process_group.py +0 -0
  47. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/collective/utils.py +0 -0
  48. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/constants.py +0 -0
  49. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/context.pxd +0 -0
  50. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/context.pyx +0 -0
  51. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/core.pxd +0 -0
  52. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/core.pyx +0 -0
  53. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/debug.py +0 -0
  54. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/driver.py +0 -0
  55. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/errors.py +0 -0
  56. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/libcpp.pxd +0 -0
  57. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/metrics/__init__.py +0 -0
  58. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/metrics/api.py +0 -0
  59. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/metrics/backends/__init__.py +0 -0
  60. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/metrics/backends/console/__init__.py +0 -0
  61. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/metrics/backends/console/console_metric.py +0 -0
  62. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/metrics/backends/metric.py +0 -0
  63. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/metrics/backends/prometheus/__init__.py +0 -0
  64. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/metrics/backends/prometheus/prometheus_metric.py +0 -0
  65. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/nvutils.py +0 -0
  66. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/profiling.py +0 -0
  67. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/serialization/__init__.py +0 -0
  68. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/serialization/aio.py +0 -0
  69. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/serialization/core.pxd +0 -0
  70. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/serialization/core.pyx +0 -0
  71. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/serialization/cuda.py +0 -0
  72. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/serialization/exception.py +0 -0
  73. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/serialization/numpy.py +0 -0
  74. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/serialization/pyfury.py +0 -0
  75. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/serialization/scipy.py +0 -0
  76. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar/utils.py +0 -0
  77. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar.egg-info/SOURCES.txt +0 -0
  78. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar.egg-info/dependency_links.txt +0 -0
  79. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar.egg-info/not-zip-safe +0 -0
  80. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar.egg-info/requires.txt +0 -0
  81. {xoscar-0.4.3 → xoscar-0.4.4}/xoscar.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xoscar
3
- Version: 0.4.3
3
+ Version: 0.4.4
4
4
  Summary: Python actor framework for heterogeneous computing.
5
5
  Home-page: http://github.com/xorbitsai/xoscar
6
6
  Author: Qin Xuye
@@ -208,6 +208,40 @@ class ActorCallerThreadLocal:
208
208
  _ = [task.cancel() for task in self._clients.values()]
209
209
 
210
210
 
211
+ def _cancel_all_tasks(loop):
212
+ to_cancel = asyncio.all_tasks(loop)
213
+ if not to_cancel:
214
+ return
215
+
216
+ for task in to_cancel:
217
+ task.cancel()
218
+
219
+ loop.run_until_complete(asyncio.gather(*to_cancel, return_exceptions=True))
220
+
221
+ for task in to_cancel:
222
+ if task.cancelled():
223
+ continue
224
+ if task.exception() is not None:
225
+ loop.call_exception_handler(
226
+ {
227
+ "message": "unhandled exception during asyncio.run() shutdown",
228
+ "exception": task.exception(),
229
+ "task": task,
230
+ }
231
+ )
232
+
233
+
234
+ def _safe_run_forever(loop):
235
+ loop.run_forever()
236
+ _cancel_all_tasks(loop)
237
+
238
+
239
+ def _safe_exit_thread(loop, thread):
240
+ # To avoid _enter_buffered_busy: could not acquire lock
241
+ loop.call_soon_threadsafe(loop.stop)
242
+ thread.join()
243
+
244
+
211
245
  class ActorCaller:
212
246
  __slots__ = "_thread_local"
213
247
 
@@ -215,9 +249,11 @@ class ActorCaller:
215
249
  pass
216
250
 
217
251
  _close_loop = asyncio.new_event_loop()
218
- _close_thread = threading.Thread(target=_close_loop.run_forever, daemon=True)
252
+ _close_thread = threading.Thread(
253
+ target=_safe_run_forever, args=(_close_loop,), daemon=True
254
+ )
219
255
  _close_thread.start()
220
- atexit.register(_close_loop.call_soon_threadsafe, _close_loop.stop)
256
+ atexit.register(_safe_exit_thread, _close_loop, _close_thread)
221
257
 
222
258
  def __init__(self):
223
259
  self._thread_local = threading.local()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xoscar
3
- Version: 0.4.3
3
+ Version: 0.4.4
4
4
  Summary: Python actor framework for heterogeneous computing.
5
5
  Home-page: http://github.com/xorbitsai/xoscar
6
6
  Author: Qin Xuye
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes