glance.async_.
EventletThreadPoolModel
(size=None)[source]¶Bases: glance.async_.ThreadPoolModel
A ThreadPoolModel suitable for use with evenlet/greenthreads.
DEFAULTSIZE
= 1024¶glance.async_.
NativeThreadPoolModel
(size=None)[source]¶Bases: glance.async_.ThreadPoolModel
A ThreadPoolModel suitable for use with native threads.
DEFAULTSIZE
= 16¶glance.async_.
TaskExecutor
(context, task_repo, image_repo, image_factory, admin_repo=None)[source]¶Bases: object
Base class for Asynchronous task executors. It does not support the execution mechanism.
Provisions the extensible classes with necessary variables to utilize important Glance modules like, context, task_repo, image_repo, image_factory.
glance.async_.
ThreadPoolModel
(size=None)[source]¶Bases: object
Base class for an abstract ThreadPool.
Do not instantiate this directly, use one of the concrete implementations.
DEFAULTSIZE
= 1¶glance.async_.
get_threadpool_model
()[source]¶Returns the system-wide threadpool model class.
This must be called after set_threadpool_model() whenever some code needs to know what the threadpool implementation is.
This may only be called after set_threadpool_model() has been called to set the desired threading mode. If it is called before the model is set, it will raise AssertionError. This would likely be the case if this got run in a test before the model was initialized, or if glance modules that use threading were imported and run from some other code without setting the model first.
Raises: | AssertionError if the model has not yet been set. |
---|
glance.async_.
set_threadpool_model
(thread_type)[source]¶Set the system-wide threadpool model.
This sets the type of ThreadPoolModel to use globally in the process. It should be called very early in init, and only once.
Parameters: | thread_type – A string indicating the threading type in use, either “eventlet” or “native” |
---|---|
Raises: | RuntimeError if the model is already set or some thread_type other than one of the supported ones is provided. |
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.