Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-43665

Add support for inline deadline + uninterruptibility in Interruptible

    XMLWordPrintableJSON

Details

    • Icon: New Feature New Feature
    • Resolution: Declined
    • Icon: Major - P3 Major - P3
    • None
    • None
    • Internal Code
    • 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

      Attachments

        Activity

          People

            backlog-server-servicearch Backlog - Service Architecture
            mira.carey@mongodb.com Mira Carey
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: