Print

Print


Hi Andy,

The proposal about the atomics sounds good to me.

The rest of the patch had a pretty screwy git history (branched off xrootd.org before the move to github), so I squashed it to here:

https://github.com/bbockelm/xrootd-1/tree/throttles_v4

then rebased onto the latest master.

NOTE NOTE: while the atomics need to be fixed, the compiler noticed the fix here doesn't work right. See this instead: bbockelm@0f378e2#diff-8a75f4c4575d9cf9cb6d982396d73258L52

The piece which doesn't work is around "if" statements like:

if (foo) AtomicAdd(x, y)

If atomics are not supported, this is expanded to:

if (foo) x; x += y

which is something completely different. I dislike the use of templates, but I think only something like this will work:

template<typename T, typename U> T AtomicAdd(T &x, const U y) {T tmp = x; x += y; return tmp;}

(and then hope the compiler is smart enough to inline!)

Brian


Reply to this email directly or view it on GitHub.



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