Thanks for your explanation. One more question, even I use the default event loop , I handle the packet in the other threads, so I have to send packet from the other threads to the default one .Because the api is thread-UNsafe , what is the right way to send packet?
在 2018年10月25日星期四 UTC+8下午7:56:37,Iñaki Baz Castillo写道: > > You are free to create N loops if somehow, you need them. No use case > coming to my mind, but why not? > > Now, when it comes to just handle network sockets, I see no benefit in > having N loops. > > Note: mediasoup uses a single libuv loop per worker subprocesses, but it > runs N subprocesses to use all CPUs in the host. > > El jue., 25 oct. 2018 13:41, Chen Cong <[email protected] <javascript:>> > escribió: > >> I am a newbie of libuv :) . I know mediasoup , it just uses one event >> loop(default event loop). So should I just use one event loop in my code, >> and why libuv provides an api to creating uv_loop_t ? The default event >> loop is enough. >> >> 在 2018年10月25日星期四 UTC+8下午7:24:32,Iñaki Baz Castillo写道: >>> >>> One event loop per UDP handle? Well, the idea behind an event loop is >>> not having to create N threads for handling N sockets or file >>> descriptions. >>> On Thu, 25 Oct 2018 at 13:14, Chen Cong <[email protected]> wrote: >>> > >>> > Thanks for your quick reply. >>> > >>> > Actually I implement my own WebRTC ICE stack(I think you know what I >>> mean :) ), and I create one event loop for each udp handle . Because loop >>> would block the main thread , I also create one thread for each loop (I >>> have no idea if I use the loop in the right way). So uv_udp_try_send is >>> called in the other thread. >>> > >>> > 在 2018年10月25日星期四 UTC+8下午6:07:13,Saúl Ibarra Corretgé写道: >>> >> >>> >> >>> >> >>> >> > On Oct 25, 2018, at 10:10, Chen Cong <[email protected]> wrote: >>> >> > >>> >> > Hi, >>> >> > >>> >> > I use libuv to build a high throughput udp server , and I have >>> some questions about libuv. >>> >> > >>> >> > 1. using "uv_udp_send" or "uv_udp_try_send" ? I use >>> "uv_udp_try_send" now , and it seems that "uv_udp_try_send" is thread-safe. >>> >> > >>> >> >>> >> It’s not. Even if it may coincidentally be, that’s en implementation >>> detail. All APIs are thread-UNsafe unsafe unless stated otherwise. >>> >> >>> >> > 2. if "uv_udp_try_send" is better , how can I use it to send packet >>> ? I know "uv_udp_try_send" is not thread-safe, and I find a related >>> thread. I want to know if PC-capable pipe server is still a good way to >>> solve this situation. >>> >> > >>> >> >>> >> I don’t understand the question. One is not better than the other, >>> they server different purposes. uv_udp_try_send will not queue data so you >>> can call it with a stack allocated buffer for example. When using >>> uv_udp_send, the request needs to “survive” until the callback is called. >>> >> >>> >> The typical use case is to try to send the packet with try_send, and >>> if it doesn’t succeed, send it with the regular send. >>> >> >>> >> I don’t understand why you mix threads with these APIs. >>> >> >>> >> >>> >> Cheers, >>> >> >>> >> -- >>> >> Saúl >>> >> >>> > -- >>> > You received this message because you are subscribed to the Google >>> Groups "libuv" group. >>> > To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> > To post to this group, send email to [email protected]. >>> > Visit this group at https://groups.google.com/group/libuv. >>> > For more options, visit https://groups.google.com/d/optout. >>> >>> >>> >>> -- >>> Iñaki Baz Castillo >>> <[email protected]> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "libuv" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] <javascript:> >> . >> Visit this group at https://groups.google.com/group/libuv. >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "libuv" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/libuv. For more options, visit https://groups.google.com/d/optout.
