<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi,<div><br></div><div>I need help understanding <span style="font-family:Menlo;font-size:14px;color:rgb(155,35,147)"><b>static</b></span><span style="color:rgb(0,0,0);font-family:Menlo;font-size:14px"> </span><span style="font-family:Menlo;font-size:14px;color:rgb(155,35,147)"><b>int</b></span><font color="#000000" face="Menlo"><span style="font-size:14px"> TracelibRunCmd(Tcl_Interp *in), </span></font></div><div><font color="#000000" face="Menlo"><span style="font-size:14px">it has blown my mind, </span><span style="font-size:14px">I</span><span style="font-size:14px"> am totally new with these kevents.</span></font><span style="font-size:14px;color:rgb(0,0,0);font-family:Menlo"> </span></div><div><span style="color:rgb(0,0,0);font-family:Menlo;font-size:14px"><br></span></div><div><font color="#000000" face="Menlo"><span style="font-size:14px">I have been trying to </span><span style="font-size:14px">understand</span><span style="font-size:14px"> that from a while now.</span></font></div><div><font color="#000000" face="Menlo"><span style="font-size:14px">Till what I understand, the thread responsible for creating server eventually calls tracelib run</span></font></div><div><font color="#000000" face="Menlo"><span style="font-size:14px">and then here</span></font></div><div><font color="#000000" face="Menlo"><span style="font-size:14px"> </span></font><span style="font-family:Menlo;font-size:14px;color:rgb(155,35,147)"><b>if</b></span><span style="color:rgb(0,0,0);font-family:Menlo;font-size:14px"> (</span><span style="font-family:Menlo;font-size:14px;color:rgb(28,0,207)">1</span><span style="color:rgb(0,0,0);font-family:Menlo;font-size:14px"> != kevent(kq, &kev, </span><span style="font-family:Menlo;font-size:14px;color:rgb(28,0,207)">1</span><span style="color:rgb(0,0,0);font-family:Menlo;font-size:14px">, &kev, </span><span style="font-family:Menlo;font-size:14px;color:rgb(28,0,207)">1</span><span style="color:rgb(0,0,0);font-family:Menlo;font-size:14px">, </span><span style="font-family:Menlo;font-size:14px;color:rgb(155,35,147)"><b>NULL</b></span><font color="#000000" face="Menlo"><span style="font-size:14px">)).  </span><span style="font-size:14px">——</span><span style="font-size:14px"> (1)</span></font></div><div><span style="color:rgb(0,0,0);font-family:Menlo;font-size:14px"><br></span></div><div><span style="color:rgb(0,0,0);font-family:Menlo;font-size:14px">waits here until the kqueue detects that someone is trying to read via socket and returns a value.</span></div><div><span style="color:rgb(0,0,0);font-family:Menlo;font-size:14px"><br></span></div><div><font color="#000000" face="Menlo"><span style="font-size:14px">in porttrace.tcl, the library gets injected and sandbox gets set.</span></font></div><div><font color="#000000" face="Menlo"><span style="font-size:14px">and then in portutil.tcl tracelib setdeps sets the dependencies.</span></font></div><div><font color="#000000" face="Menlo"><span style="font-size:14px"><br></span></font></div><div><font color="#000000" face="Menlo"><span style="font-size:14px">Now the in  (1) , it would only return when someone tries to read data from the socket, when does that happen? Is it when darwintrace calls frecv? That seems to be the only part where data is read from that socket and for breaking going beyond that kevent(), reading seems necessary. But to do that accept() must be called which is called later. </span></font></div><div><font color="#000000" face="Menlo"><span style="font-size:14px"><br></span></font></div><div><font color="#000000" face="Menlo"><span style="font-size:14px">Sorry to make it so cluttered.</span></font></div><div><font color="#000000" face="Menlo"><span style="font-size:14px">Kindly help me in understanding this :)</span></font></div><div><font color="#000000" face="Menlo"><span style="font-size:14px"><br></span></font></div><div><font color="#000000" face="Menlo"><span style="font-size:14px">Regards,</span></font></div><div><font color="#000000" face="Menlo"><span style="font-size:14px">Mihir</span></font></div><div><br></div><div><br></div><div><font color="#000000" face="Menlo"><span style="font-size:14px"><br></span></font></div></div></div></div></div></div>