• 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: NSOperationQueue
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSOperationQueue


  • Subject: Re: NSOperationQueue
  • From: Markus Spoettl <email@hidden>
  • Date: Sat, 02 Jun 2012 18:54:48 +0200

On 6/2/12 5:55 PM, Kyle Sluder wrote:
On Jun 2, 2012, at 8:38 AM, Markus Spoettl<email@hidden>  wrote:

On 6/2/12 4:57 PM, Charles Srstka wrote:
On Jun 1, 2012, at 10:23 PM, Graham Cox wrote:

On 02/06/2012, at 1:12 PM, Kyle Sluder wrote:

Give them a higher priority. You should be able to alter the priorities as the user scrolls, and NSOperationQueue will do the right thing.


I tried this but it doesn't work - a bit of thought about how the ops are queued will show why no meaningful priority value can be assigned.

At the moment that the operations are queued, there are some operations in the queue not yet run, and some running. The code that creates the operations doesn't know which ones are needed more urgently (the latest ones), so it can only assign a high priority to all of them, so they all end up with the same (high) priority and so we're back to square one.

Setting the priority seems to work, in my testing:

Prioritizing doesn't solve the LIFO problem the OP has. When you add a new prioritized operation you need to de-prioritize the ones that are already in the queue (in order to make sure your new operation executes first). Those de-prioritized operations execute in FIFO order.

I'm still not seeing the problem. Just set their queuePriority property. The order of operations is not fixed at the time of enqueueing, and NSOperation's properties are thread safe for a reason.

I'm still not seeing how queuePriority would solve the issue. Say you have a queue with maxConcurrentOperationCount == 1

1) You add operation (A), it starts executing

2) You add operation (B), (C), (D), (E), (F), (G), (H) and (I) in that order. All wait

Please explain how you suggest to use queuePriority in order to ensure the waiting operations will execute in the reverse order:

(I), (H), (G), (F), (E), (D), (C), (B).

Regards
Markus
--
__________________________________________
Markus Spoettl
_______________________________________________

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: NSOperationQueue
      • From: Charles Srstka <email@hidden>
    • Re: NSOperationQueue
      • From: Kyle Sluder <email@hidden>
    • Re: NSOperationQueue
      • From: Charles Srstka <email@hidden>
    • Re: NSOperationQueue
      • From: Ken Thomases <email@hidden>
References: 
 >NSOperationQueue (From: Graham Cox <email@hidden>)
 >Re: NSOperationQueue (From: Kyle Sluder <email@hidden>)
 >Re: NSOperationQueue (From: Graham Cox <email@hidden>)
 >Re: NSOperationQueue (From: Charles Srstka <email@hidden>)
 >Re: NSOperationQueue (From: Markus Spoettl <email@hidden>)
 >Re: NSOperationQueue (From: Kyle Sluder <email@hidden>)

  • Prev by Date: Re: NSOperationQueue
  • Next by Date: Re: NSOperationQueue
  • Previous by thread: Re: NSOperationQueue
  • Next by thread: Re: NSOperationQueue
  • Index(es):
    • Date
    • Thread