-#if NET_4_0 || BOOTSTRAP_NET_4_0
//
// LazyInitializer.cs
//
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
+#if NET_4_0 || BOOTSTRAP_NET_4_0
+
using System;
namespace System.Threading
public static T EnsureInitialized<T> (ref T target, Func<T> initFunc) where T : class
{
- Interlocked.CompareExchange (ref target, initFunc (), null);
+ if (target == null)
+ Interlocked.CompareExchange (ref target, initFunc (), null);
return target;
}