Files
dmex b02427417c PH1.x: fixed build
git-svn-id: svn://svn.code.sf.net/p/processhacker/code@5614 21ef857c-d57f-4fe0-8362-d861dc6d29cd
2014-02-25 23:14:38 +00:00

31 lines
738 B
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace ProcessHacker.Common.Threading
{
public static class Interlocked2
{
public static int Set(ref int location, Predicate<int> predicate, Func<int, int> transform)
{
int value;
while (true)
{
value = location;
if (!predicate(value))
return value;
if (Interlocked.CompareExchange(
ref location,
transform(value),
value
) == value)
return value;
}
}
}
}