Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Lock
Message
From
20/05/2011 11:09:58
 
 
To
20/05/2011 11:04:34
Timothy Bryan
Sharpline Consultants
Conroe, Texas, United States
General information
Forum:
ASP.NET
Category:
Coding, syntax and commands
Title:
Re: Lock
Environment versions
Environment:
C# 3.0
OS:
Windows XP SP2
Application:
Desktop
Miscellaneous
Thread ID:
01511264
Message ID:
01511277
Views:
45
>>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
>
>I just did a find on the usage of "IsFindingActiveWebService" and it isn't used anywhere except this method. Since there is a lock, what the heck value is added by IsFindingActiveWebService - None! Even if there was, why wouldn't the lock be good enough? Doesn't a lock block until the current use is freed? I sometimes think the challenge of fixing bad code can be more than creating some to begin with.

I guess we both had the same thought :-}
UPDATE : And at the exact same second !
Previous
Reply
Map
View

Click here to load this message in the networking platform