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

