async fn disconnect(&mut self) {
        self.stdout.take();
        self.stderr.take();
        if let Some(syslog) = self.syslog.take() {
            syslog.close_channel();
        }
        if let Some(task) = self.archive.take() {
            task.await;
        }
    }
// This is idempotent, and may be called multiple times. It may NOT be called from the
// |serve_archive_iterator| tasks.
This is idempotent, and may be called multiple times. It may NOT be called from the
|serve_archive_iterator| tasks.
This is idempotent and may be called multiple times . It may NOT be called from the |serve_archive_iterator| tasks .
async fn disconnect(&mut self) {
        self.stdout.take();
        self.stderr.take();
        if let Some(syslog) = self.syslog.take() {
            syslog.close_channel();
        }
        if let Some(task) = self.archive.take() {
            task.await;
        }
    }
async fn disconnect ( & mut self ) { self . stdout . take ( ) ; self . stderr . take ( ) ; if let Some ( syslog ) = self . syslog . take ( ) { syslog . close_channel ( ) ; } if let Some ( task ) = self . archive . take ( ) { task . await ; } }
This is idempotent, and may be called multiple times.
This is idempotent and may be called multiple times .
&mut self
&mut self