Hi Tony,

Question 1: Not Likely
Question 2: Likely

Regards,

Ken Geiger

On Tue, Nov 1, 2016 at 1:03 PM, Tony Ringsmuth <ton...@bbsp.com> wrote:

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