• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Seeking advice on NSLock usage
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Seeking advice on NSLock usage


  • Subject: Re: Seeking advice on NSLock usage
  • From: Clark Cox <email@hidden>
  • Date: Sun, 12 Dec 2004 22:34:57 -0500

On Sun, 12 Dec 2004 15:36:17 +0000, Jeremy Dronfield
<email@hidden> wrote:
> I have an application which carries out file system searches according
> to criteria set by the user. Searching is done in a separate thread, so
> as not to lock up the program. Whilst a search is going on, the user is
> thus able to tinker with the controls which set search criteria.
> Disabling the interface seems a clumsy solution, so this seems like a
> case for using locks. I've read what I can find about them, but I have
> two outstanding questions.
>
> 1. How do locks work? When a lock is activated inside a setter method,
> does it, in effect, disable the setter method by blocking changes to
> the variable? - or does it create a locked copy of the variable at the
> time when the program goes multithreaded, leaving the rest of the
> program free to alter it?

The lock itself has nothing to do with what it is locking. You can
think of it as a "talking stick" (to borrow a term from kindergarten).
Whomever has the stick is allowed to talk, and everyone else has to
wait their turn.

Calling [aLock lock] is essentially saying "I want to do my thing now,
is the talking stick available? If so, give it to me, if not, then
I'll wait until I can get it."

On the other hand, calling [aLock unlock] is essentially saying "OK,
I'm done, is anyone else waiting on the talking stick? If so, then
here it is, you can have it."


>
> 2. It appears that NSLock can't be used with non-object variables. Some
> of my search criteria are strings, but most are BOOLs and ints. How can
> I lock those? Will I have to change them to NSNumbers, or is there some
> other approach?

An NSLock isn't associated with any particular variable, it is simply
a way to get different threads to "play nice", and wait their turns.


--
Clark S. Cox III
email@hidden
http://www.livejournal.com/users/clarkcox3/
http://homepage.mac.com/clarkcox3/
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Seeking advice on NSLock usage
      • From: Evan Schoenberg <email@hidden>
References: 
 >Seeking advice on NSLock usage (From: Jeremy Dronfield <email@hidden>)

  • Prev by Date: buggy WebKit behavior
  • Next by Date: Re: Seeking advice on NSLock usage
  • Previous by thread: Re: Seeking advice on NSLock usage
  • Next by thread: Re: Seeking advice on NSLock usage
  • Index(es):
    • Date
    • Thread