<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/147796>147796</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[lldb-dap] Revisit runInTerminal process communication
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ashgti
</td>
</tr>
</table>
<pre>
Today, when we use the `runInTerminal` reverse request to open a file in a terminal we are using a FIFO to communicate between the processes.
This has been unstable in the CI and as a result we've disabled the tests for some architectures/platforms.
Additionally, we have issues where we are leaking `std::future` objects on timeout errors:
https://github.com/llvm/llvm-project/blob/a63846b475bacfda49eb00016e0dc43c9ab1aa7d/lldb/tools/lldb-dap/FifoFiles.cpp#L62-L69
It may be worth revisiting this and seeing if we could use a different approach, for example, we could use a socket instead of FIFO.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUk8-O4zYMxp9GvhATKPK_8cGHdBcGBligQDEvQFt0rK4suSKddN6-kDNpp8c9SQI-fhR_JJHZXQNRr-rfVP29wF2WmHrk5SquGKP96N-jxQ9lvsF9oQB3gp0JZCFQjU57eAvvlFYX0KtGQ6IbJSZI9NdOLCAR4kYBEGbnCVy-yac-e2HKfi5cAWF4G37PAVNc1z24CYVgJLkThSPfluJEzMQnpS9KX94Xx7Agw5gVe2DB8ZEjq7-9AQYLyICQiHcvcCdl2huBdZyV9tAJsTDMMQHHNX9oWpzQJHsiVmbYPMoc0_pMerHWiYsBvX9AIVjwRuCYd-LMKNGzME_4M5emGs1iVXlR5WXes3NGFcc_aRKGGEDcSnEXoJRi4izUl0VkO65mUGa4Oln28TTFVZnB-9vzeNlSzDbKDKOPozIDNuVr1YxVW484zRarjkat9bkhbaeqnDocz4itPQxsjpAYPX8-XyxuygyDm-PgPPFp2jZlyh-NefnRdA8EbwIrfsBIcI9Jltxzx05ypZJbkrEzUX67ObOY4u7tMTYI1s0zJQoCuG0p4rRkihk__Y3r5ukT6tcYjtNPEnCBhdBCnI9RORW2L21XdlhQf25ro1_Lyphi6ameznQu66qqddPgq21Qd_NM89SO-nW0heuNNrVudXdua23MqUZba2um84wd2ZJUpWlF50-Z8Smma3H0tz9Xbds1hceRPB87Y0yg-6P7ypi8Qqk_GjPuV1aV9o6F_7MRJ_5Ytn9h19_hjwdA-N82Pcf9yzq4GIo9-f6XR-MxnMoMn_-_9eafAAAA__8VJVUn">