On May 4, 2017, at 12:21 PM,David Adams wrote:

> Thanks for all of the details from your time at the tour, it sound really
> great. I'm happy to see that CALL FORM and CALL WORKER are being promoted,
> that's great. I strongly encourage everyone to try these features out. If
> you can find 30-60 minutes when you've got the feeling to experiment, you
> can master the basic mechanics. Several months later, I'm still sorting
> through nuances ;-) The documentation on the basic commands is excellent,
> although I find the overall 'about workers' page possibly more misleading
> than clarifying.

And this is where the 2nd day of the 4D World Tour and JPR’s presentation is so 
valuable. He spends a lot of time talking about the worker process system. The 
ideas behind how it works. The detail of when things happen. (Example: if you 
open a window and then do CALL FORM before you issues a DIALOG command, exactly 
what happens related to the form events? Not gonna tell you. Go to the 4D World 
Tour and let JPR tell you!)  All this background information is so helpful. And 
because the meetings are small with less than 50 people, you can ask questions 
at any time. 

JPR also talks about “slicing” and “chunking” and why you need to use these 
techniques and provides examples of their use with workers. Important 
information needed so that your finished implementation using these new 
commands is smooth and polished. 

> I'm glad that Tim pointed out that these commands work in 32-bit and don't
> require compilation to execute. I think that these commands may have come
> out of 4D's work on making more of the language pre-emptive. That's
> understandably lead to some conflation of the two subjects. Pre-emptive
> mode and these new CALL commands can be treated as unrelated subjects. So
> if you don't care about pre-emptive, you should still find out about these
> commands - they're a vast improvement over past options.


And for another clarification, you CAN have a worker generate a UI, open 
windows, etc. The caveat is you can only do this if the worker is interpreted, 
or the worker compiled but set to not running preemptively. You only get the 
illegal command error messages when compiling and you have set the method to 
run preemptively. (Reminds me of a Dirty Harry saying… “a man’s got to know his 
limitations.”)

And 4D has had preemptive processes for a long time. They are now exposing this 
existing technology to developers for us to use. An example is the “DB4D 
Server" process running on the server. (And it could very well be that any 
process running on 4D Server with “State” of “Running” is a preemptive process. 
I didn’t ask JPR that question, I’m just guessing here.)

Tim

********************************************
Tim Nevels
Innovative Solutions
785-749-3444
timnev...@mac.com
********************************************

**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**********************************************************************

Reply via email to