Re: Fix serialization problem in xmerl export

Richard Carlsson <[email protected]>
Newsgroups gmane.comp.lang.erlang.patches
Message-ID <[email protected]>
Ping?

    /Richard

On 2013-09-27 14:32, Fredrik wrote:
> On 09/27/2013 01:49 PM, Richard Carlsson wrote:
>> The inheritance mechanism in xmerl uses 'catch apply(M,F,Args)'
>> to try different modules M until one was found that had a function
>> F/A. However, when M:F/A does not exist, apply/3 will trap to
>> error_handler:undefined_function/3, which will call
>> code:ensure_loaded(M), making a synchronous request to the code
>> server process. If many processes tried to use xmerl:export()
>> concurrently, they would get serialized waiting for the code server
>> process.
>>
>> This patch uses erlang:function_exported/3 instead to check if M:F/A
>> exists. If M exists, it should already have been loaded at that point
>> due to the inheritance checking in the xmerl:callbacks/1 function.
>>
>> git fetch [email protected]:richcarl/otp.git
>> xmerl-avoid-code-server-serialization
>>
>> https://github.com/richcarl/otp/tree/xmerl-avoid-code-server-serialization
>>
>>
>>
>>    /Richard
>> _______________________________________________
>> erlang-patches mailing list
>> [email protected]
>> http://erlang.org/mailman/listinfo/erlang-patches
> Hello Richard,
> I've created a pullrequest for your patch, which you can follow here:
> https://github.com/erlang/otp/pull/87
> The patch will be run through initial tests and then be assigned to be
> reviewed by responsible developers.
> Thanks,
>
> --
>
> BR Fredrik Gustafsson
> Erlang OTP Team
>

_______________________________________________
erlang-patches mailing list
[email protected]
http://erlang.org/mailman/listinfo/erlang-patches
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.