cURL / Mailing Lists / curl-library / Single Mail

curl-library

RE: threading problem on windows

From: Michael Mastroianni <MMastroianni_at_choicestream.com>
Date: Sun, 4 Jul 2004 10:43:56 -0400

I finally got things to work by actually defining USE_ARES in config.h, rather than in the project settings. Now I can run with no problems. I do wonder what happened, though. I didn't see USE_THREAD_GET defined anywhere in the code...
 
the closest thing I could find was CURLRES_THREADED, defined if you're running W32.
 
 
I have code I can give you, but I'm not sure how... I've got a zip file containing the source, but I don't imagine the list mailer includes attachments. I'll try anyway. You'd have to change the include path and lib path for libcurl in the project settings.
 
thanks for any help.
 
regards,
Michael

        -----Original Message-----
        From: curl-library-bounces_at_cool.haxx.se on behalf of Gisle Vanem
        Sent: Sun 7/4/2004 7:10 AM
        To: libcurl development
        Cc:
        Subject: Re: threading problem on windows
        
        

        "Michael Mastroianni" said:
        
> When I run a lot of threads (like 150), I get blowups in
>
> gethostbyname_thread in hostthre.c
>
> in particular, I blow up on the line:
>
> he = gethostbyname (conn->async.hostname);
        
        You mean it is NULL or some huge illegal value? I don't see how
        that can happen. The get*_thread() functions doesn't modify that
        string at all. Unless someone else stepping on 'conn->async'.
        
        Do you have an example program I could try?
        
> I got c-ares, built it, gave my curllib project the directories, told it
> to link against libares.lib, and defined USE_ARES in the project settings.
> Still, I end up here.
        
        That shouldn't happen; USE_THREAD_GET* isn't defined unless you defined
        it outside setup.h youself. Looks like your debugger isn't giving you the true
        story or the bug is elsewhere.
        
        Try to build libcurl with -DCURLDEBUG and watch for allocation errors.
        Look at src/main.c and curl_memdebug("memdump") for how that's done.
        
        --gv
        
        
        

Received on 2004-07-04