# HG changeset patch
# User Jun Wu <quark@fb.com>
# Date 2016-12-16 14:46:34
# Node ID dfb19aed409e9288cab6fc45ee2e4d9e1243b718
# Parent  e995f00a9e9afda3734e7880df0fc90fd2197a88

chgserver: store csystem separately

Previously, the "system" channel is inside the ui object. In the future, chg
will let dispatch to create a new ui object from scratch, to maximize
compatibility. And chgserver will use a "uisetup" like an extension to wrap
ui.system. To be able to do that cleanly, the system channel needs to be
accessed directly.

diff --git a/mercurial/chgserver.py b/mercurial/chgserver.py
--- a/mercurial/chgserver.py
+++ b/mercurial/chgserver.py
@@ -327,8 +327,9 @@ class channeledsystem(object):
 
 class chgcmdserver(commandserver.server):
     def __init__(self, ui, repo, fin, fout, sock, hashstate, baseaddress):
+        self._csystem = channeledsystem(fin, fout, 'S')
         super(chgcmdserver, self).__init__(
-            _newchgui(ui, channeledsystem(fin, fout, 'S')), repo, fin, fout)
+            _newchgui(ui, self._csystem), repo, fin, fout)
         self.clientsock = sock
         self._oldios = []  # original (self.ch, ui.fp, fd) before "attachio"
         self.hashstate = hashstate