avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Douglas Creager (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AVRO-746) Atomic reference counts
Date Fri, 28 Jan 2011 15:33:47 GMT

     [ https://issues.apache.org/jira/browse/AVRO-746?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Douglas Creager updated AVRO-746:

    Attachment: fixed-make-dist.patch

Ignore the 0001 patch; the new openpa directory wasn't being included in the distribution
tarball, giving you compilation errors.  The new patch fixes this.

> 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, fixed-make-dist.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.
You can reply to this email to add a comment to the issue online.

View raw message