Product

Coexistence of thread-safe and non-thread-safe commands

Automatically translated from English

Have you ever needed to use methods with both thread-safe and not thread-safe calls, with conditions that skip over commands that are not thread-safe? Currently the compiler prevents doing this and an error is thrown, however there’s a flag that lets you disable this check and this blog post shows you how. 

Product

Easily synchronize your processes

Automatically translated from English

Preemptive processes are very useful for performing extensive calculations in parallel, using all of the cores in your CPU, but sometimes you need to delegate tasks to a cooperative process (e.g., using a non-preemptive command). With the New signal command, you can pause a process and wait for the response from another process!

Product Web Service in preemptive

Preemptive Web Services Server and Client

Automatically translated from English

Preemptive Web Services allow your applications to take full advantage of multi-core computers resulting in faster responses for simultaneous requests. It’s not only powerful, it’s also easy: from the Method Properties of any method, just select the “Can be run in preemptive processes” option and you’re off and running!

A 4D method can be preemptive or not according to compilation options and the use of the language, as explained in this post.