libmicrohttpd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libmicrohttpd] Sharing per-thread resources between connections


From: Christian Grothoff
Subject: Re: [libmicrohttpd] Sharing per-thread resources between connections
Date: Thu, 03 Jul 2014 10:05:23 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.5.0

Well, pthread_key_create() also works, I guess, but I was thinking about
a slightly more lightweight method:

http://gcc.gnu.org/onlinedocs/gcc-3.3/gcc/Thread-Local.html

But both should work, and the best choice may really depend on your
application and its intended environment.


Happy hacking!

Christian

On 07/03/2014 09:58 AM, Carlos Eduardo Moreira dos Santos wrote:
> I googled and found pthread_key_create(). Is that what you meant? I'm
> glad to know I don't need to maintain a fork :). Thank you.
> 
> 
> On Tue, Jul 1, 2014 at 1:38 AM, Christian Grothoff <address@hidden
> <mailto:address@hidden>> wrote:
> 
>     On 06/30/2014 06:30 PM, Carlos Eduardo Moreira dos Santos wrote:
>     > Hi,
>     >
>     > I'm using zeromq between a request and a response. Its socket is not
>     > thread-safe and that's one of the reasons I chose
>     MHD_USE_SELECT_INTERNALLY.
>     > As I am also using a thread pool, I have different sockets for
>     each thread.
>     > It is expensive to open and close a socket in every connection and
>     I would
>     > like to share a socket between all same-thread connections. I
>     didn't find a
>     > way to do it, so I made a small change in the code
>     >
>     
> <https://github.com/cemsbr/libmicrohttpd/commit/3151eff47553a8a93db7fb3355366b31aed2b262>
>     > in order to get the thread number (starting from 0) from the
>     connection
>     > daemon. Thus, I can initialize an array of sockets only once (in
>     the main
>     > function) and have them indexed by the thread number to be
>     accessed later.
>     >
>     > As a side effect, I have to include internal.h, but it is working as
>     > expected. Was there a better way of doing this that I haven't noticed?
> 
>     You might want to just use a thread-local variable to hold your
>     connection.
> 
>     My 1 cent ;-).
> 
>     Christian
> 
> 

Attachment: 0x48426C7E.asc
Description: application/pgp-keys


reply via email to

[Prev in Thread] Current Thread [Next in Thread]