| 155 | } |
| 156 | |
| 157 | inline |
| 158 | ITaskContinuation::Ptr Task::getErrorHandlerOrFinalTask() |
| 159 | { |
| 160 | if ((_type == Type::ErrorHandler) || (_type == Type::Final)) |
| 161 | { |
| 162 | return shared_from_this(); |
| 163 | } |
| 164 | else if (_next) |
| 165 | { |
| 166 | ITaskContinuation::Ptr task = _next->getErrorHandlerOrFinalTask(); |
| 167 | if ((_next->getType() != Type::ErrorHandler) && (_next->getType() != Type::Final)) |
| 168 | { |
| 169 | _next->terminate(); |
| 170 | _next.reset(); //release next task |
| 171 | } |
| 172 | return task; |
| 173 | } |
| 174 | return nullptr; |
| 175 | } |
| 176 | |
| 177 | inline |
| 178 | bool Task::isBlocked() const |
no test coverage detected