A list of FutureCores with common future-related operations. Future providers may use BaseFutureList or FutureList in place of a plain IntrusiveForwardList.
This class does not provide any locking. It is the responsibility of the user to ensure safety, typically by holding a lock in the containing provider.
Public Types | |
| using | iterator = IntrusiveForwardList< FutureCore >::iterator |
| using | const_iterator = IntrusiveForwardList< FutureCore >::const_iterator |
Public Member Functions | |
| bool | empty () const |
| size_t | size () const |
| iterator | begin () |
| iterator | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
| iterator | before_begin () |
| const_iterator | before_begin () const |
| iterator | erase_after (iterator pos) |
| FutureCore & | front () |
| void | Push (FutureCore &future) |
| void | PushRequireEmpty (FutureCore &future) |
| bool | PushIfEmpty (FutureCore &future) |
| FutureCore * | PopIfAvailable () |
| FutureCore & | Pop () |
| void | ResolveOne () |
| void | ResolveOneIfAvailable () |
| void | ResolveAll () |
Pops all futures and calls WakeAndMarkReady() on them. | |
Protected Member Functions | |
| IntrusiveForwardList< FutureCore > & | list () |
|
inline |
Pops the next future fromt the list and calls WakeAndMarkReady(). Crashes if there are no futures in the list.