Details
-
New Feature
-
Resolution: Declined
-
Major - P3
-
None
-
None
-
None
-
Service Arch
-
Fully Compatible
Description
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