Print

Print


  Branch: refs/heads/master
  Home:   https://github.com/xrootd/xrootd
  Commit: e3ee50672a455d3e620bc67b593cbef62b059a72
      https://github.com/xrootd/xrootd/commit/e3ee50672a455d3e620bc67b593cbef62b059a72
  Author: Brian Bockelman <[log in to unmask]>
  Date:   2014-11-17 (Mon, 17 Nov 2014)

  Changed paths:
    M src/XrdSys/XrdSysIOEvents.cc
    M src/XrdSys/XrdSysIOEvents.hh
    M src/XrdSys/XrdSysIOEventsPollE.icc

  Log Message:
  -----------
  Make sure the wakePend flag does not incur undefined behavior.

The wakePend flag currently has undefined behavior as multiple threads
read and write to it without a consistent locking mechanism.  This
switches writes and reads to use C++11's release-consume ordering
when available.  Without this patch, we have undefined behavior - which
is illegal with C++11.

The release-consume ordering is sufficient to guarantee atomicity
and the ordering of wakePend writes; other than that, it's a very
weak memory model.  In practice, this is a guarantee already provided
by all interesting architectures (it only generates different assembler
on DEC Alpha).

Fixes #167


  Commit: 1435552729b0e0bf6373aca5efd948d628501ecc
      https://github.com/xrootd/xrootd/commit/1435552729b0e0bf6373aca5efd948d628501ecc
  Author: Brian Bockelman <[log in to unmask]>
  Date:   2014-11-20 (Thu, 20 Nov 2014)

  Changed paths:
    M src/XrdSys/XrdSysAtomics.hh
    M src/XrdSys/XrdSysIOEvents.cc
    M src/XrdSys/XrdSysIOEvents.hh
    M src/XrdSys/XrdSysIOEventsPollE.icc

  Log Message:
  -----------
  Replace ifdef's with CPP_ATOMIC_* macros.


  Commit: dac6ee52d12ae5d49c4317618890238e70f17823
      https://github.com/xrootd/xrootd/commit/dac6ee52d12ae5d49c4317618890238e70f17823
  Author: Brian Bockelman <[log in to unmask]>
  Date:   2014-11-21 (Fri, 21 Nov 2014)

  Changed paths:
    M src/XrdSys/XrdSysAtomics.hh
    M src/XrdSys/XrdSysIOEvents.cc

  Log Message:
  -----------
  Re-introduce the toMutex lock and explain why this is necessary.

NOTE: also fixed a debug line accidentally committed to XrdSysAtomics.hh


  Commit: ab9e2a3d72f4f0fb0afef8272996323c881844e7
      https://github.com/xrootd/xrootd/commit/ab9e2a3d72f4f0fb0afef8272996323c881844e7
  Author: Andrew Hanushevsky <[log in to unmask]>
  Date:   2014-11-24 (Mon, 24 Nov 2014)

  Changed paths:
    M src/XrdSys/XrdSysAtomics.hh
    M src/XrdSys/XrdSysIOEvents.cc
    M src/XrdSys/XrdSysIOEvents.hh
    M src/XrdSys/XrdSysIOEventsPollE.icc

  Log Message:
  -----------
  Merge pull request #170 from bbockelm/fix-wakepend-loads

Make sure the wakePend flag does not incur undefined behavior.


Compare: https://github.com/xrootd/xrootd/compare/16b3682883df...ab9e2a3d72f4

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1