-
Type:
New Feature
-
Resolution: Declined
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Internal Code
-
None
-
Service Arch
-
Fully Compatible
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Add support for a single level form of subsidiary deadlines + uninterruptibility in Interruptible with a syntax that looks like:
future.get(interruptible->makeTimer(deadline, code));
That syntax should produce a type convertible to an Interruptible* which wraps underlying calls to checkForInterrupt or waitForConditionOrInterruptUntil calls in the appropriate guards. It should replace the more wordy:
interruptible->runWithDeadline(deadline, code, [&]{
future.get(interruptible);
});
when a subsidiary deadline or uninterruptible invocation is needed at the very bottom of the callstack.
That type should not nest and should not alter the state of the parent interruptible