- wrapped in a :class:`SmartFuture`. This value will block if it is
- either read directly (via a call to :meth:`_resolve`) or
- indirectly (by using the result in an expression, printing it,
- hashing it, passing it a function argument, etc...). See comments
- on :class:`SmartFuture` for details. The value can be safely
- stored (without hashing) or passed as an argument without causing
- it to block waiting on a result. There are some convenience
- methods for dealing with collections of :class:`SmartFuture`
- objects defined in :file:`smart_future.py`, namely
- :meth:`smart_future.wait_any` and :meth:`smart_future.wait_all`.
+ wrapped in a
+ :class:`pyutils.parallelize.smart_future.SmartFuture`. This value
+ will block if it is either read directly (via a call to
+ :meth:`_resolve`) or indirectly (by using the result in an
+ expression, printing it, hashing it, passing it a function
+ argument, etc...). See comments on :class:`SmartFuture` for
+ details. The value can be safely stored (without hashing) or
+ passed as an argument without causing it to block waiting on a
+ result. There are some convenience methods for dealing with
+ collections of :class:`SmartFuture` objects defined in
+ :file:`smart_future.py`, namely
+ :meth:`pyutils.parallelize.smart_future.wait_any` and
+ :meth:`pyutils.parallelize.smart_future.wait_all`.