[
https://issues.apache.org/jira/browse/LOGCXX-339?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13896620#comment-13896620
]
Thorsten Schöning commented on LOGCXX-339:
------------------------------------------
I removed the wrong documentation but leave the bug open for now.
> Child thread does not inherit a copy of the mapped diagnostic context of its
> parent
> -----------------------------------------------------------------------------------
>
> Key: LOGCXX-339
> URL: https://issues.apache.org/jira/browse/LOGCXX-339
> Project: Log4cxx
> Issue Type: Bug
> Affects Versions: 0.10.0
> Environment: Debian (Etch) Linux - x86 64-bit
> Reporter: Ben Humphreys
> Assignee: Curt Arnold
> Priority: Minor
>
> The API documentation for MDC says "The MDC is managed on a per thread basis.
> A child thread automatically inherits a copy of the mapped diagnostic context
> of its parent."
> However this does not appear to be the case. Take the following testcase:
> #include <iostream>
> #include <pthread.h>
> #include <log4cxx/mdc.h>
> void *threadfunc(void *arg)
> {
> std::cout << "child: " << log4cxx::MDC::get("mykey") << std::endl;
> }
> int main(int argc, char *argv[])
> {
> pthread_t thread_id;
> log4cxx::MDC::put("mykey", "123");
> std::cout << "main: " << log4cxx::MDC::get("mykey") << std::endl;
> pthread_create(&thread_id, NULL, threadfunc, NULL);
> pthread_join(thread_id, NULL);
> return 0;
> }
> This should return:
> main: 123
> child: 123
> But instead returns:
> main: 123
> child:
> This behavior is noted in a more serious application where MDC is used to add
> fields (such as hostname and MPI rank) to the logger output.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)