1. 20 Aug, 2018 3 commits
  2. 12 Aug, 2018 1 commit
  3. 24 Jul, 2018 6 commits
  4. 11 Jul, 2018 1 commit
  5. 25 Jun, 2018 1 commit
    • Debarshi Ray's avatar
      widget: Fix race between polling the master & using the PTY in a child · 65d67f6f
      Debarshi Ray authored
      When a very short-lived process, like true(1), is spawned
      asynchronously as a child, there is a race between the child closing
      the pseudo-terminal's slave device on exit and VteTerminal receiving
      it, and the GAsyncReadyCallback passed to vte_pty_spawn_async being
      invoked. If the child closes it and the G_IO_HUP is received before the
      callback is invoked, then it causes VterTerminal to unset its VtePty
      object, which leads to the following CRITICAL when the callback tries
      to set up a watch on the child:
        Vte-CRITICAL **: void vte_terminal_watch_child(VteTerminal*, GPid):
          assertion 'impl->m_pty != NULL' failed
      
      The race can be avoided by setting up the GIOChannel to poll the
      pseudo-terminal master device only after the callback has been
      invoked. If the kernel has already buffered up some activity on the
      slave device, then that will be seen in the next iteration of the main
      loop, and the VtePty won't be unset before setting up the watch.
      
      There is a similar race for downstreams that continue to use
      gnome-pty-helper. In those cases, the helper is in charge of creating
      the pseudo-terminal device pair, and it closes its copies of the file
      descriptors after sending them to VteTerminal. If VteTerminal starts
      polling the master device immediately after receiving it from the
      helper, before the child process has been forked, and the helper loses
      the race to close its copy of the slave device's file descriptor
      before the master is polled, then VteTerminal will receive a G_IO_HUP
      and stop reading further input from the master. The subsequently forked
      child process gets left in a defunct state and the same CRITICAL is
      logged.
      
      This also makes vte_terminal_spawn_async match its synchronous variant,
      which is nice.
      
      Fixes #7:
      #7
      65d67f6f
  6. 17 Jun, 2018 1 commit
  7. 23 Apr, 2018 2 commits
  8. 03 Apr, 2018 1 commit
  9. 27 Mar, 2018 2 commits
  10. 04 Mar, 2018 1 commit
    • Christian Persch (away until week 30)'s avatar
      all: Add test mode · bac521b5
      Add a way to enable test mode, which will activate functions
      that are normally not enabled (for whatever reason).
      
      Add --test-mode to the vteapp to activate test mode. This
      will later be used in automatic tests.
      bac521b5
  11. 03 Mar, 2018 1 commit
  12. 05 Feb, 2018 1 commit
  13. 03 Feb, 2018 1 commit
  14. 27 Jan, 2018 1 commit
  15. 23 Dec, 2017 1 commit
  16. 19 Dec, 2017 1 commit
  17. 09 Dec, 2017 1 commit
  18. 04 Dec, 2017 1 commit
  19. 29 Oct, 2017 1 commit
  20. 24 Oct, 2017 2 commits
  21. 21 Oct, 2017 1 commit
  22. 29 Sep, 2017 1 commit
  23. 15 Sep, 2017 1 commit
  24. 13 Sep, 2017 1 commit
  25. 07 May, 2017 1 commit
  26. 04 May, 2017 1 commit
  27. 25 Apr, 2017 1 commit
  28. 24 Apr, 2017 1 commit
  29. 28 Mar, 2017 2 commits