4Dv11 threading model
Mehboob Alam (7/21/08 9:00PM)
Julio Carneiro (7/22/08 1:20AM)
Brendan Coveney (7/22/08 10:10AM)
Charles Miller (7/22/08 3:09PM)
Danis Georgiadis (7/22/08 7:28PM)
Mehboob Alam (7/21/08 9:00 PM)
I ran across this strange error message when prototyping a new
application. I'm using 4Dv11 Standard Edition (not Developer Edition)
and a beta of Escape's QPix plugin.
"4D is current set to use the "NewThread" threading model, which is
not compatible with QPix and QuickTime. You must change 4D's threading
model to "longjmp" by editing the "ThreadingModel" key in 4D's
Info.plist file."
Q: Should I, and what would happen if I did?
PS: 4D crashed right after I hit the Continue button. Removed QPix,
and everything is fine.
sincerely,
mehboob alam
To make a bad day worse, spend it wishing for the impossible.
Julio Carneiro (7/22/08 1:20 AM)
I have no inside info on that and have no idea it making that change
will solve your problem. (anyway you can always go back to whatever
was in there before).
All I can say is that the 'longjmp' option hints to the 'old threading
model', that is, 4D's internal threading technique which did not use
OS native threading. 'longjmp' is a standard C function which is very
helpful when rolling your own threading (which used to be that case
with 4D till 2004).
So, my interpretation of that message is that Qpix/Quicktime do not
run under 4D's new OD based threading mechanism and that you have to
go back to use the old threading.
As I said, I'm only speculating here... 'longjmp' is what caught my
attention as I used that same technique to implement threading way
before SilverSurfer even existed (ouch!).
On Jul 22, 2008, at 1:00 AM, Mehboob Alam wrote:
I ran across this strange error message when prototyping a new
application. I'm using 4Dv11 Standard Edition (not Developer
Edition) and a beta of Escape's QPix plugin.
"4D is current set to use the "NewThread" threading model, which is
not compatible with QPix and QuickTime. You must change 4D's
threading model to "longjmp" by editing the "ThreadingModel" key in
4D's Info.plist file."
Q: Should I, and what would happen if I did?
PS: 4D crashed right after I hit the Continue button. Removed QPix,
and everything is fine.
sincerely,
mehboob alam
To make a bad day worse, spend it wishing for the impossible.
Brendan Coveney (7/22/08 10:10 AM)
All:
As Danis knows the change in threading was forced on us by Apple's new
threading model. Unfortunately we were blind sided by this ourselves
and
were forced into a quick change.
The Engineering team worked hard to come up with a workaround for
plug-ins
using the old threading model no longer supported by Apple and
changing the
plist is the way these plug-ins can continue to run. Obviously this is a
short term solution and is not officially supported by Apple so
hopefully we
can all make the transition to the new threading model ASAP.
Regards
Brendan
On 7/22/08 9:28 AM, "Danis Georgiadis" <dmg@... wrote:
Luckily 4D v11.2 fixed the bugs that prevented the old scheme from
working properly in v11.1, so now there's a simple and safe
workaround by editing the info.plist file.
Charles Miller (7/22/08 3:09 PM)
<99f910d50807221209h37d151f4t7b674247c60a9429@...
H Danis,
Does this mean for all of 4d client activity or only qpix related
activity?
TIA and Regards
Chuck
On Tue, Jul 22, 2008 at 12:28 PM, Danis Georgiadis <dmg@...
wrote:
The 2004/v11-compatible versions of QPix and the other Escape plug-ins
will
require Mac users to switch back to the old threading model.
The next generation of Escape plug-ins will require v11 and will
obviously
work with the new threading model of 4D.
Danis Georgiadis (7/22/08 7:28 PM)
Here's what happened: 4D's threading mechanism was suddenly changed
in v11.1 from "longjmp" to "NewThread": in 11.0 it was "longjmp" and
in 11.1 all of a sudden it was "NewThread".
For a complex plug-in like QPix, that interfaces with technologies
which are not thread-safe themselves (such as QuickTime and TWAIN),
the new threading scheme was simply unusable. Had we been told about
this on time, we might have a chance to change our plans.
The v11-compatible version of QPix was being prepared with v11.0's
threading scheme in mind. We were not prepared for such a fundamental
change in v11.1 and there was no time to react: supporting the new
scheme would require massive redesign of the plug-ins and loss of
existing functionality.
Luckily 4D v11.2 fixed the bugs that prevented the old scheme from
working properly in v11.1, so now there's a simple and safe
workaround by editing the info.plist file.
The 2004/v11-compatible versions of QPix and the other Escape plug-
ins will require Mac users to switch back to the old threading model.
The next generation of Escape plug-ins will require v11 and will
obviously work with the new threading model of 4D.
-Danis
Reply to this message
Summary created 7/22/08 at 6:21PM by Intellex Corporation
Comments welcome at: feedback@intellexcorp.com