I think some things may have gotten lost in the shuffle.

The original starter of this topic was the one who wasn’t seeing progress bar 
updates (when calling progressFraction from within execute), which I’m guessing 
is a symptom of the issue Peter mentioned about execute being called from 
outside the main thread.

I was just adding that, at least in the case of progress updates from engine, 
the progress bar doesn’t seem to be shown at all unless the op’s running time 
crosses a certain threshold. The progress bar updates work fine... it’s just a 
question of whether the bar shows up at all. :P 

The same thing seems to happen when running the Tracker node (which I’ve seen a 
lot of people complain about), though I don’t know whether that process is 
implemented using engine, execute, or a custom execution function (I would 
venture to guess the latter).

-Nathan



From: Steven Booth 
Sent: Wednesday, November 30, 2011 8:05 AM
To: Nuke plug-in development discussion 
Subject: RE: [Nuke-dev] Re: progressFraction bar not showing

Then it’s an open question why Nathan isn’t seeing a change in his GUI when 
calling them from inside an engine invocation.

 

From: [email protected] 
[mailto:[email protected]] On Behalf Of Jerry Huxtable
Sent: Wednesday, November 30, 2011 8:00 AM
To: Nuke plug-in development discussion
Subject: Re: [Nuke-dev] Re: progressFraction bar not showing

 

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 [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: mailto:[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 
[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

 

 





 

(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

Reply via email to