Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Lock
Message
From
20/05/2011 10:37:33
Timothy Bryan
Sharpline Consultants
Conroe, Texas, United States
 
 
To
All
General information
Forum:
ASP.NET
Category:
Coding, syntax and commands
Title:
Lock
Environment versions
Environment:
C# 3.0
OS:
Windows XP SP2
Application:
Desktop
Miscellaneous
Thread ID:
01511264
Message ID:
01511264
Views:
101
Hi all,

I have this method I am refactoring for various reasons. There is a lot of nesting and plan to remove some of it. I am wondering about this intital test inside of a lock statement and wonder if it would be safe to move it outside of the lock construct.

This is what it looks like now.
public void FindActiveWebService()
{
    lock (FindWebServiceSync)
    {
        if (!IsFindingActiveWebService)
        {
            IsFindingActiveWebService = true;
            try
            {
                // Lots of crappy code and nested code in here with loops and such.
                // Planning to refactor all this junk.
            }
            finally
            {
                IsFindingActiveWebService = false;
            }
        }
    }
}
Wondering if it would be just as safe to do this and remove the extra if structure.
public void FindActiveWebService()
{
    // Moved outside the lock
    if (IsFindingActiveWebService)
        return;

    lock (FindWebServiceSync)
    {
        IsFindingActiveWebService = true;
        try
        {
            // Lots of crappy code and nested code in here with loops and such.
            // Planning to refactor all this junk.
        }
        finally
        {
            IsFindingActiveWebService = false;
        }
    }
}
Thanks for any thoughts.
Timothy
Timothy Bryan
Next
Reply
Map
View

Click here to load this message in the networking platform