Index: doc/theses/thierry_delisle_PhD/thesis/local.bib
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/local.bib	(revision fc96890db1a384795e9b3cb96a77554f585268ec)
+++ doc/theses/thierry_delisle_PhD/thesis/local.bib	(revision a2fd937999535f46b6546d640ca7d676c1362c18)
@@ -842,4 +842,13 @@
 }
 
+@manual{MAN:bash,
+  title   = {Bash Reference Manual},
+  author  = {Chet Ramey and Brian Fox},
+  year    = "2020",
+  month   = "December",
+  version = {5,1},
+  howpublished = {\href{https://www.gnu.org/software/bash/manual/bash.pdf}{https://\-www.gnu.org/\-software/\-bash/\-manual/\-bash.pdf}}
+}
+
 @misc{MAN:io_uring,
   title   = {Efficient IO with io\_uring},
@@ -850,4 +859,5 @@
   howpublished = {\href{https://kernel.dk/io_uring.pdf}{https://\-kernel.dk/\-io\_uring.pdf}}
 }
+
 
 % --------------------------------------------------
Index: doc/theses/thierry_delisle_PhD/thesis/text/io.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/text/io.tex	(revision fc96890db1a384795e9b3cb96a77554f585268ec)
+++ doc/theses/thierry_delisle_PhD/thesis/text/io.tex	(revision a2fd937999535f46b6546d640ca7d676c1362c18)
@@ -30,5 +30,5 @@
 Hence, if one \gls{kthrd} is managing the select calls, other threads can only add/remove to/from the manager's interest set through synchronized calls to update the interest set.
 However, these changes are only reflected when the manager makes its next call to @select@.
-Note, it is possible for the manager thread to never unblock if its current interest set never changes, \eg the sockets/pipes/ttys it is waiting on never get data again.
+Note, it is possible for the manager thread to never unblock if its current interest set never changes, \eg the sockets/pipes/TTYs it is waiting on never get data again.
 Often the I/O manager has a timeout, polls, or is sent a signal on changes to mitigate this problem.
 
@@ -46,5 +46,6 @@
 However, all three of these I/O systems have limitations.
 The @man@ page for @O_NONBLOCK@ mentions that ``[@O_NONBLOCK@] has no effect for regular files and block devices'', which means none of these three system calls are viable multiplexing strategies for these types of \io operations.
-Furthermore, @epoll@ has been shown to have problems with pipes and ttys~\cit{Peter's examples in some fashion}.
+Furthermore, TTYs can also be tricky to use since they can take different forms based on how the command is executed.
+For example, @epoll@ rejects FDs pointing to regular files or block devices, which includes @stdin@ when using shell redirections~\cite[\S~3.6]{MAN:bash}, but does not reject shell pipelines~\cite[\S~3.2.3]{MAN:bash}, which includes pipelines into @stdin@.
 Finally, none of these are useful solutions for multiplexing \io operations that do not have a corresponding file descriptor and can be awkward for operations using multiple file descriptors.
 
