Hi Kushal,

Did you use one event_base for all threads or each event_base for each
thread?

Regards,
Loan Ton

On Fri, Feb 24, 2017 at 1:34 PM, kushal bhattacharya <
[email protected]> wrote:

> Hi Ton Loan,
> I am encountering the same situation that you are thinking so i am
> processing packets in different thread.THere comes a situation when the
> client sends too much data
>
> On Fri, Feb 24, 2017 at 1:53 PM, Tôn Loan <[email protected]> wrote:
>
>> Hi Steffen,
>>
>> Thank you for your useful advice. Actually, as  you said, if I let
>> libevent handle the networking stuff within one thread, I wonder that is
>> there a bottle neck that happens when client sends a lot of messages to
>> four sockets?
>>
>> I use multiple threads on different ports for the same service. Here is
>> my implementaton,
>>
>> Client A sends command X to thread 1 on socket 1234, then thread 1 will
>> receive command X and execute the command.
>> Client B sends command Y to both thread 1 and 2 on socket 1234 and 1235,
>> respectively. Two threads receive the command, but thread 2 send a signal
>> to thread 1, and wait. Thread 1 will execute the message, and after it
>> finishs, it send a signal to thread 2 to update the result of command Y.
>>
>> Because I use the libevent and threads together, so I am very confused to
>> design my implementation. In this case, should I use one event_base for all
>> theads, or each event_base for each thread?
>>
>> @Jan: Thank you. I will take a look for your suggestion.
>>
>> Best Regards,
>> Loan
>>
>>
>>
>>
>>
>> On Thu, Feb 23, 2017 at 9:12 PM, Steffen Christgau <[email protected]> wrote:
>>
>>> Hi Loan,
>>>
>>> although it might not answer your question, I'm wondering if your
>>> application really needs threads for the different sockets. From what I
>>> read, I conclude that each of the four threads handles the packet, i.e.
>>> the messages/requests that are sent to the socket associated with that
>>> particular thread.
>>>
>>> However, do the threads do different work, i.e. do they provide
>>> different services on the sockets. Or do you use multiple threads
>>> because you are offering the same service on different ports (and, thus,
>>> on different interfaces)? Nevertheless, it appears to me that the
>>> threads are not created by to distribute the work of processing the
>>> messages that are received on either socket.
>>>
>>> Thus, you might not need different threads from my point of view. Just
>>> create your four sockets and let libevent handle the networking stuff
>>> within one thread.
>>>
>>> Look at the event_new function. To do different things with the
>>> different sockets (e.g. handle different application protocols) just
>>> provide different callbacks. Supply an according arg parameter if you
>>> want to as well.
>>>
>>> http://www.wangafu.net/~nickm/libevent-book/Ref4_event.html provides
>>> with you with a short introduction and also shows you how to add
>>> multiple file descriptors to the same event_base.
>>>
>>> Hope this helps you.
>>>
>>> Regards, Steffen
>>>
>>> On 23.02.2017 10:31, Tôn Loan wrote:
>>> >
>>> > Hello list,
>>> >
>>> > I'm new to libevent and trying to learn some more about it for
>>> > potential use in a project. Here is my problem.
>>> >
>>> > I have one server that has 5 threads. Each thread bounds to a
>>> different UDP
>>> > port (separate socket). Each thread listens on separate socket and
>>> receive
>>> > the message from client.
>>> > I used each event_base for each thread and added signal events to each
>>> > event_bases But only one event_base will receive signals.
>>> >
>>> > So, is there any solution for each event_base that will receive its own
>>> > signals?
>>> > Any ideas or sample code would be extremely helpful. Thank you so much.
>>> >
>>> > Best Regards,
>>> > Loan Ton
>>>
>>> ***********************************************************************
>>> To unsubscribe, send an e-mail to [email protected] with
>>> unsubscribe libevent-users    in the body.
>>>
>>
>>
>

Reply via email to