<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi Rob,</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
First of all if my email, format is not right, please let me know as i do not use an email client.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Secondly, i agree with you on the use of popen, this comes from my in experience as to what pending means for a utility.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
i thought it was accepted and needed cleanup in the sense of reducing code size.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
i wasn't sure why the system() call was used, but i left it as to not redo what the original author had done.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
carrying on from the point of knowing what is expected, would you be able to point me towards a something in the pending directory that you have not started on , that i can skim through and perhaps try and cleanup, just to avoid duplicating efforts.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Haroon.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Rob Landley <rob@landley.net><br>
<b>Sent:</b> Tuesday, August 21, 2018 3:22 PM<br>
<b>To:</b> haroon maqsood; toybox@lists.landley.net<br>
<b>Subject:</b> Re: [Toybox] [CLEANUP][watch.c]</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">On 08/20/2018 03:13 AM, haroon maqsood wrote:<br>
> Hi Rob,<br>
> Thanks a lot for the feedback, <br>
> Noted, i will be more careful next time .<br>
<br>
It's a hard problem to get right. (Well, by my standards anyway.)<br>
<br>
If you do "watch -n 2 sleep 5" on debian you get no output for 5 seconds, and<br>
then it updates every 7 seconds instead of every 5. Also if you do:<br>
<br>
  watch 'while true; do sleep .1; echo -n .; done'<br>
<br>
On debian you get no output ever (it's waiting to read a line).<br>
<br>
Watch should use popen() instead of system(), use poll() as the timeout<br>
mechanism, read() the output as it becomes available fit it to the screen. It<br>
should use the ascii probe logic as part of its screen size probing, which means<br>
it needs the scan_key logic in lib/ to parse the result. (Poll can check both.<br>
And as long as we're doing that "q" should quit too, so it's unkillable when run<br>
without job control.) At timeout it should kill the old process with a signal if<br>
it hasn't exited net (we need a SIGCHLD handler because you can't poll() and<br>
wait4() at the same time), and if the old pid hasn't exited by a SECOND timeout<br>
kill -9 it. Whether or not these count against -e and -b is a design todo item.<br>
<br>
This is a largeish redesign of the loop. Working on it...<br>
<br>
Rob<br>
</div>
</span></font></div>
</body>
</html>