[
https://issues.apache.org/jira/browse/AXIS2C-830?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bill Mitchell updated AXIS2C-830:
---------------------------------
Attachment: libcurl_diff
The attached diff file contains the changes to axis2_http_transport_sender.c,
axis2_http_sender.c & .h, and axis2_libcurl.c & .h to maintain the curl handle
in the axis2_libcurl structure and to make the axis2_libcurl structure be owned
by the axis2_http_transport_sender structure. This allows the curl handle to
be persistent for the life of the client service.
While working on this change, I came across a memory leak in the
axis2_libcurl_write_memory_callback(). When it expands the size of the buffer
by reallocating it, the old instance of the buffer is not freed. This
oversight is remedied in the attached source changes.
I have verified this change by running multiple, e.g., 4, concurrent client
threads each performing SOAP exchanges to a set of SOAP services.
> libcurl interface not multithreaded
> -----------------------------------
>
> Key: AXIS2C-830
> URL: https://issues.apache.org/jira/browse/AXIS2C-830
> Project: Axis2-C
> Issue Type: Bug
> Components: transport/http
> Affects Versions: 1.1.0
> Environment: Windows XP, Visual Studio 2005, build uses libcurl and
> guththila
> Reporter: Bill Mitchell
> Attachments: libcurl_diff
>
>
> Axis2C support of libcurl is not multithreaded, i.e., it cannot be invoked by
> a multithreaded client application. This despite the fact that libcurl is
> multithreaded and Axis2C is multithreaded. The crux of the issue lies in the
> static global definition of the curl handler in axis2_libcurl.c. This
> prevents multiple client threads from obtaining multiple connections to issue
> concurrent SOAP operations.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]