<div dir="ltr">Hi,<div>I am having trouble understanding a piece of code in the function <font face="monospace">monitor_dial</font> of the file <font face="monospace">main/dial.c</font></div><div><br></div><div><font face="monospace">who = ast_waitfor_n(cs, pos, &timeout);</font><br></div><div><br><font face="monospace">/* If the timeout no longer exists OR <b><font color="#ff0000">if we got no channel</font></b> it basically means the timeout was tripped, so handle it */<br></font></div><span style="font-family:monospace">if (!timeout || !who) {</span><br><span style="font-family:monospace">    timeout = handle_timeout_trip(dial, start);</span><br><span style="font-family:monospace">    continue;</span><br><div><font face="monospace">}</font></div><div><br></div><div>my question is what will be the reason for not having the channel <font face="monospace">"who"</font> as mentioned in the comment above the condition?</div><div>The reason I am asking this is that <font face="monospace">"who"</font> is returned from the channel list <font face="monospace">"cs"</font> which cannot be of size <font face="monospace">0</font> as the "<font face="monospace">count"</font> variable is being checked and also the "<font face="monospace">pos"</font> value can't be less than 1.</div><div><br></div><div>can please anybody explain what could be the conditions for <font face="monospace">"who"</font> to be returned NULL.</div></div>