The progress functions are GUI-safe by design. If not, it's a bug.....

Jerry

On 30 Nov 2011, at 15:30, Steven Booth wrote:

> That’s quite possible, but let’s be clear about one thing.  It’s possible for 
> a function to be thread-safe, and still be unusable in a non-UI thread.  
> There’s a difference between ‘thread-safe’ and ‘GUI-safe’.  Not having the 
> code for progressFraction, it’s impossible for us mere mortals to know if 
> it’s GUI-safe, although it’s a fair bet it’s thread-safe.
>  
> J
>  
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of Jerry Huxtable
> Sent: Wednesday, November 30, 2011 12:10 AM
> To: Nuke plug-in development discussion
> Subject: Re: [Nuke-dev] Re: progressFraction bar not showing
>  
> Hi,
>  
> The progress functions in the NDK are thread safe. As you say, they transfer 
> the UI updates to the main thread. You can't do any other UI work in a 
> background thread though.
>  
> Jerry
>  
> On 29 Nov 2011, at 20:35, Nathan Rusch wrote:
> 
> 
> Right, that all makes sense. However, curiosity prevails...
>  
> The fact that there are no mentions anywhere in any of the NDK docs about 
> progressFraction being unsafe to use in engine calls has me thinking it may 
> be possible that the Op interface is handling message and progress handoffs 
> to Nuke transparently to avoid these sorts of issues. I guess what I’m 
> getting at is that maybe it’s not the Op::engine call itself that updates the 
> interface, but rather it simply provides information that the GUI thread can 
> choose to make use of.
>  
> Also, many of the sample Writer-derived classes use progressFraction fairly 
> liberally in their execute() calls, and while I know these are probably 
> single-threaded, I would venture to guess they aren’t running in the GUI 
> thread either.
>  
> -Nathan
> 
>  
> From: Steven Booth
> Sent: Tuesday, November 29, 2011 11:35 AM
> To: Nuke plug-in development discussion
> Subject: RE: [Nuke-dev] Re: progressFraction bar not showing
>  
> It is never acceptable to update a UI from any thread other than the one that 
> created it, which is almost always the ‘main’ or ‘primary’ thread.  Nuke 
> spawns separate, dependent threads for all engine calls, and as such, 
> updating any UI element from inside an engine call is an undefined operation. 
>  The _validate, _open, _close, _invalidate, and knobs function calls are all 
> executed in the main thread, and are UI-safe.
>  
> This, in fact, is a major problem for many Nuke developers that want to 
> manipulate the display as a part of processing.  The only way to do it 
> properly is to save state changes in a module-global variable inside your 
> engine call, and then use the new values to update the UI in either _close or 
> _invalidate.
>  
> It’s not a question of engine being thread-safe – it is – rather, it’s a 
> question of the UI elements being thread-safe, which is not guaranteed. 
>  
> Steve
>  
>  
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of Nathan Rusch
> Sent: Tuesday, November 29, 2011 10:51 AM
> To: [email protected]
> Subject: Re: [Nuke-dev] Re: progressFraction bar not showing
>  
> Can you elaborate on this at all? I’m calling progressFraction in a plugin’s 
> engine method with zero crashes, but while calling it, my engine is locked to 
> a single thread... do you mean these functions aren’t thread-safe? Or are you 
> talking about other UI update calls?
>  
> -Nathan
> 
>  
> From: Steve3D
> Sent: Tuesday, November 29, 2011 7:41 AM
> To: [email protected]
> Subject: [Nuke-dev] Re: progressFraction bar not showing
>  
> I hope you're not trying to update the UI from inside an 'engine' thread, 
> because that's not allowed, and if it works, it will work intermittently and 
> cause crashes.
> _______________________________________________
> Nuke-dev mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev
> (CONFIDENTIALITY NOTICE: The information contained in this email may be 
> confidential and/or privileged. This email is intended to be reviewed by only 
> the individual or organization named above. If you are not the intended 
> recipient, or an authorized representative of the intended recipient, you are 
> hereby notified that any review, dissemination or copying of this email, or 
> the information contained herein is strictly prohibited. If you have received 
> this communication in error, please notify the sender by return email and 
> delete this email from your system. Thank You.)
>  
>  
> _______________________________________________
> 
> Nuke-dev mailing list
> 
> [email protected], http://forums.thefoundry.co.uk/
> 
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev
> 
> _______________________________________________
> Nuke-dev mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev
>  
> Jerry Huxtable,
> Senior Product Designer
> The Foundry
> Tel: +44 (0)20 7968 6828 - Fax: +44 (0)20 7930 8906 
> Web: www.thefoundry.co.uk
> Email: [email protected]  
> 
> The Foundry Visionmongers Ltd.
> Registered in England and Wales No: 4642027
>  
> (CONFIDENTIALITY NOTICE: The information contained in this email may be 
> confidential and/or privileged. This email is intended to be reviewed by only 
> the individual or organization named above. If you are not the intended 
> recipient, or an authorized representative of the intended recipient, you are 
> hereby notified that any review, dissemination or copying of this email, or 
> the information contained herein is strictly prohibited. If you have received 
> this communication in error, please notify the sender by return email and 
> delete this email from your system. Thank You.)
> 
> _______________________________________________
> Nuke-dev mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev

Jerry Huxtable, Senior Product Designer
The Foundry, 6th Floor, The Communications Building, 48 Leicester Square, 
London. WC2H 7LT
Tel: +44 (0)20 7968 6828 - Fax: +44 (0)20 7930 8906
Web: www.thefoundry.co.uk

The Foundry Visionmongers Ltd • Registered in England and Wales No: 4642027





_______________________________________________
Nuke-dev mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev

Reply via email to