• 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: Threaded data freaking out
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Threaded data freaking out


  • Subject: RE: Threaded data freaking out
  • From: "Jake A. Repp" <email@hidden>
  • Date: Sun, 9 Mar 2003 19:22:17 -0800
  • Thread-topic: Threaded data freaking out

My prefered method of multitheading and synchronizing this to the UI is using
notifications. This way it integrates well with non-threaded application
updates as well. You can find an example of this at:

http://jrepp.com/cocoabb/viewtopic.php?t=64

With a little extra work I find the foundation threading wrappers to be very
usable.

-jake

-----Original Message-----
From: publiclook [mailto:email@hidden]
Sent: Saturday, March 08, 2003 5:07 PM
To: spike
Cc: email@hidden
Subject: Re: Threaded data freaking out



One alternative is to use NSTimer instead of a separate thread. If your
goal is just to keep the user interface active while processing takes
place, using a timer to perform calculations or I/O while events are
still processed is one way to go. I find threads are usually not worth
the hassle.

Apple's overview of threaded programming is good:
http://developer.apple.com/techpubs/macosx/Cocoa/TasksAndConcepts/
ProgrammingTopics/Multithreading/index.html

Regarding books: I don't remember what I used back in the day... Those
books are dusty on the shelf or in boxes so I suppose that is not a
good sign.

"Advanced Programming in the UNIX Environment" is a good book that
includes threads.

"Programming with POSIX Threads" looks like it has potential.

Others:

"Pthreads Programming: A POSIX Standard for Better Multiprocessing"
"Posix 4: Programming for the Real World"


On Saturday, March 8, 2003, at 07:45 PM, spike wrote:

> I've worked with threads to the extent that I'm using right now
> before. It's only a single thread to generate the NSTableData so the
> user can still quit and interact and stuffs.
>
> The problem only happens after I run the thread the second time. If I
> run the first time, it works 100% of the time. if I attempt to reload
> that data, It freaks out sometimes.
>
> I've written several multithreaded apps in the past (using Java and
> REALbasic- blech) and never had any problems such as this...
>
> Do you recommend any specific books?
>
>
> ...spike
>
> On Saturday, March 8, 2003, at 09:33 am, publiclook wrote:
>
>> Multi-threaded programming and locks are not Cocoa specific. You
>> shouldn't attempt multi-threaded programming in any environment
>> without a clear understanding of the issues such as priority
>> inversion, deadlock, race conditions, re-entrance, etc. Correct
>> multi-threaded programming is very hard. You need a good book on the
>> subject.
>>
>> On Saturday, March 8, 2003, at 04:44 AM, spike wrote:
>>
>>> I've been reading up on NSLock (and the related classes) and I don't
>>> quite understand it, I did some quick stuff to test it out, but the
>>> error still occured.
>>>
>>> I added a property (variable?) to my class called NSLock *lock; and
>>> in my +init class method, I lock = [[NSLock alloc] init]; and
>>> called [lock lock] and [lock unlock] sandwiched around my modifying
>>> code and reading code, but that didn't fix it. I don't think I was
>>> doing it right.
>>>
>>> in the debugger, when I got that exception, sometimes row was out of
>>> bounds, but other times it was well within the bounds (row == 1, yet
>>> [fileSizes count] and [fileNames count] both were 5000+.
>>>
>>> after looking at my threads and the stackTrace and all that I
>>> noticed that this error occurs when my [myTableView reloadData]
>>> happens and I store that value into the BOOL.
>>>
>>> could someone give me a quick rundown on how locking works/ how to
>>> implement it? I read the explanation on apple's site and the thing
>>> on cocoadevcentral's site, but I really don't understand it.
>>>
>>>
>>>
>>> ...spike
>>>
>>>
>>> On Friday, March 7, 2003, at 07:36 pm, Cameron Hayne wrote:
>>>
>>>> Spike wrote:
>>>>> I've got an app that uses NSTableView and it's threaded. I get
>>>>> *** -[NSCFArray objectAtIndex:]: index (1) beyond bounds (1)
>>>>> I've been using the debugger and the only 2 arrays that I'm using
>>>>> I got
>>>>> the data for using po and they both have like 5000 items in them
>>>>> (like
>>>>> they're supposed to).
>>>>> The line of code that's wigging out is:
>>>>> BOOL isMissing = [[fileSizes objectAtIndex: row] isKindOfClass:
>>>>> [NSString class]];
>>>>
>>>> Two comments:
>>>> 1) You mention that your app is multi-threaded. So are you sure
>>>> that you are properly locking the data for access by the two
>>>> threads?
>>>> 2) The error message seems to say that the 'row' index is 1 and
>>>> that the array 'fileSizes' has only one element in it, hence the
>>>> index is out of bounds.
>>>>
>>>> Cameron Hayne
>>>> email@hidden
>>>> _______________________________________________
>>>> cocoa-dev mailing list | email@hidden
>>>> Help/Unsubscribe/Archives:
>>>> http://www.lists.apple.com/mailman/listinfo/cocoa-dev
>>>> Do not post admin requests to the list. They will be ignored.
>>> _______________________________________________
>>> cocoa-dev mailing list | email@hidden
>>> Help/Unsubscribe/Archives:
>>> http://www.lists.apple.com/mailman/listinfo/cocoa-dev
>>> Do not post admin requests to the list. They will be ignored.
>> _______________________________________________
>> cocoa-dev mailing list | email@hidden
>> Help/Unsubscribe/Archives:
>> http://www.lists.apple.com/mailman/listinfo/cocoa-dev
>> Do not post admin requests to the list. They will be ignored.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.

  • Prev by Date: SIGINT (was Re: create NSWindow in Core Foundation tool)
  • Next by Date: Re: NSTask / forking in sub-process / Problem?
  • Previous by thread: Re: Threaded data freaking out
  • Next by thread: Drawing in NSView
  • Index(es):
    • Date
    • Thread