• 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: NSImage from bitmap - then delete bitmap
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSImage from bitmap - then delete bitmap


  • Subject: Re: NSImage from bitmap - then delete bitmap
  • From: Graham Cox <email@hidden>
  • Date: Wed, 27 Jul 2016 12:18:03 +1000

> On 27 Jul 2016, at 12:05 PM, Trygve Inda <email@hidden> wrote:
>
> How is it retained by the main thread without an explicit retain call?
>
> I would be no different than a main thread calling:
>
> someVar [[MyObj alloc] init]
> [someVar doSomething];
>
> If a worker thread were able to call [someVar release] between these two
> lines, the doSomething call could fail.


The atomic setter method probably looks something like this:

- (void)	setImageRep:(NSImageRep*) rep
{
	@synchronized( self )
	{
		[rep retain];
		[_imageRep autorelease];
		_imageRep = rep;
	}
}

i.e. the old value is autoreleased. Which thread’s pool gets that autorelease is a matter for consideration though. I have no idea if it’s just left to the caller’s pool, or if there are steps taken to ensure it ends up in the main pool. Even if it’s the caller’s pool, unless you’re draining it on each loop, it may only ever get drained when the thread ends, which is safe. But it could accumulate a lot of unreleased memory which is another potential problem.

Threads are tricky ;)

—Graham



_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Follow-Ups:
    • Re: NSImage from bitmap - then delete bitmap
      • From: Trygve Inda <email@hidden>
    • Re: NSImage from bitmap - then delete bitmap
      • From: Graham Cox <email@hidden>
References: 
 >Re: NSImage from bitmap - then delete bitmap (From: Trygve Inda <email@hidden>)

  • Prev by Date: Re: NSImage from bitmap - then delete bitmap
  • Next by Date: Re: NSImage from bitmap - then delete bitmap
  • Previous by thread: Re: NSImage from bitmap - then delete bitmap
  • Next by thread: Re: NSImage from bitmap - then delete bitmap
  • Index(es):
    • Date
    • Thread