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
