| 106 | class ReentrantChecker { |
| 107 | public: |
| 108 | Future<T> operator()() { |
| 109 | if (state_->generated_unfinished_future.load()) { |
| 110 | state_->valid.store(false); |
| 111 | } |
| 112 | state_->generated_unfinished_future.store(true); |
| 113 | auto result = state_->source(); |
| 114 | return result.Then(Callback{state_}); |
| 115 | } |
| 116 | |
| 117 | bool valid() { return state_->valid.load(); } |
| 118 |