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