Hey Keith

>    Sorry Tony, I also dislike the idea of IP variables being copied into new 
> preemptive processes.

It seems pretty un-popular with the community.  I’m at peace with that.
My big beef (as stated before) is that excluding entire methods, based on any 
content, and any sub-content just makes this a terrible implementation in my 
view.

Think of it like this:
There are some commands that we cannot call during the redraw of a record 
listing:  like ALERT.
Why didn’t 4D make it such that a record listing cannot call any 4D method that 
contains the command ALERT?  They didn’t.  
I have ALERT is some methods that are called from record listings:  but it’s 
behind conditions that never invoke the ALERT if I’m in the context of a record 
listing.

Regards,
Tony




On 11/4/16, 7:54 AM, "4D_Tech on behalf of Keith White" 
<[email protected] on behalf of [email protected]> wrote:

    Hi
    
    Given the current restrictions, we're currently not in a position to 
contemplate Preemptive.  Of course we'll be working on our code to move towards 
it.
    
    But what I just don't get is why 4D thinks that putting compiler _errors_ 
in for this feature instead of just warnings, is a great idea.  4D has made the 
compiler check and error on a lot of things where it _can_ check, but why 
bother stopping you from compiling when the compiler can't check everything 
anyway?
    
    Runtime errors will be generated if offending code happens to execute.  
These runtime checks are already in place for cases like dereferencing pointers 
to IP variables, surely.
    
    Also consider EXECUTE METHOD (a thread safe command, apparently) - the 
compiler obviously can't check what code this command might execute.
    
    The main issue we'll face with attempting to get our code to be thread safe 
will be IP Arrays.  Our IP arrays are static (in that they are populated on 
server startup) and without them performance would be very badly degraded.  I'm 
encouraged by the discussion here of a new type of semi-static array concept 
that could be populated at startup - as long as:-
    
    1. Static arrays could be accessed (but not updated) from cooperative 
processes
    2. Static arrays could be updated at times other than startup during 
development when running in interpreted mode (and hence there are no 
pre-emptive processes)
    
    Sorry Tony, I also dislike the idea of IP variables being copied into new 
preemptive processes.
    
    Best regards
    
    Keith White
    Synergist Express Ltd, UK.
    **********************************************************************
    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:[email protected]
    **********************************************************************


**********************************************************************
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:[email protected]
**********************************************************************

Reply via email to