Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-8670

Implement `process::io::read/write` using Thread Pool API

    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.7.0
    • None

    Description

      process::io::read/write currently use a read/write loop with io:: poll, which is implemented by the libevent loop. This doesn't work on Windows, because libevent only works on sockets. Furthermore, the reads/writes are blocking on Windows for pipes. Instead, we should use I/O completion ports with overlapped I/O and the thread pool API to implement read/write.

      Note: when read/write receive a file/socket/pipe handle in overlapped mode, they will assign them to the IOCP handle. The stout function os::nonblock will (continue to) be a no-op on Windows. It does not make sense to make os::nonblock do the association, as the IOCP handle is a global in libprocess, of which stout has no knowledge.

      Attachments

        Issue Links

          Activity

            People

              akagup Akash Gupta
              akagup Akash Gupta
              Andrew Schwartzmeyer Andrew Schwartzmeyer
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: