Greetings

I’m on a quest to persuade 4D to adopt a more useful implementation of 
preemptive processing than they are currently adopting. 
Please answer questions #1 and #2 below if you can.

CURRENT RESTRICTIONS to using preemptive processes (up through the upcoming 
release of v16):
1: Any method that uses any restricted items cannot be called preemptively.  
Restricted items include:
        A: Interprocess variables
        B: Plugins
        C: Various 4D commands
        D: Any component method that is not Preemptive save
2: No method that calls any other method that has restricted items can be 
called preemptively
3: Any method that saves records via pointers to a table is restricted (If you 
have any Table Trigger in the whole database that has any restricted items (as 
listed in #1 or #2))
        Example: SAVE RECORD($MyTable->)

QUESTION #1
       In light of the current restrictions, how likely are you to leverage the 
use of Preemptive Processing in the near future? 
       NOT LIKELY / SOMEWHAT LIKELY / VERY LIKELY

        YOUR COMMENTS:


IF your answer to #1 is “NO” , then consider this alternate implementation. 

TONY’S PROPOSED ALTERNATE STRATEGY:
1: Each Preemptive worker process should have it’s own complete instantiation 
of IP Variables; similar to it’s set of Process variables.  The scope and 
lifespan of those IP variables would be limited to that worker process, and 
that worker process only.  It would be up to the developer to populate those IP 
variables, or do with them as he wishes.
        As a ~possible~ option to this:  perhaps we could have an option 
parameter to indicate to 4D to copy all IP variables from the current process 
to the new worker process

2: IP variables would then become a non-restricted item, and can be freely used 
in Preemptive processes.

3: 4D should NOT prohibit the use of methods in Preemptive processes based on 
any content therein; however, at runtime, if a method actually executes a 
prohibited command or pluggin: 4D would generate an error.
        So, you could code like:
        IF($InPreemptive_b)
                `Do something safe for Preemptive
        ELSE
                `Use some command that is NOT Preemptive compliant
        END IF

QUESTION #2
If this strategy was implemented, how likely would you be to leverage the use 
of Preemptive Processing in your applications?


I appreciate your feedback in this
Thanks!
Tony Ringsmuth


**********************************************************************
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