[ https://issues.apache.org/jira/browse/AVRO-746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13045507#comment-13045507 ]
Douglas Creager commented on AVRO-746: -------------------------------------- There hasn't been any word on whether the Windows intrinsics work, but this is working on all of the other platforms I can test. And we still don't officially list Windows as a supported port; AVRO-551 is still open to get the tests to compile and run under Windows. Unless I hear objections in the next couple of days, I'm going to go ahead and commit this on the 1.6 trunk branch. > Atomic reference counts > ----------------------- > > Key: AVRO-746 > URL: https://issues.apache.org/jira/browse/AVRO-746 > Project: Avro > Issue Type: Bug > Components: c > Reporter: Douglas Creager > Assignee: Douglas Creager > Attachments: 0001-Atomic-reference-counts.patch, > 0001-Performance-test-program.patch, 0002-Serialization-performance-test.patch > > > In one of my projects that uses Avro, I pass avro_datum_t instances between > threads, using the reference count mechanism to make sure that they're not > freed while any thread still has a reference to them. I was getting some > spurious segfaults, which were caused by the fact that the reference counts > aren't updated atomically. I've created a patch that implements atomic > reference counts, using the [OpenPA > library|http://trac.mcs.anl.gov/projects/openpa/] to provide the atomic > operations themselves. (That library is MIT licensed, so it can be included > in the source tree.) > Note that only avro_XXX_incref and avro_XXX_decref are thread-safe as a > result of this patch. For all of the other library functions, the caller is > still responsible for ensuring thread safety. > The patch makes sure that the OpenPA code works in both the old autotools > build and the newer CMake build. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira