More commands to run in preemptive processes

A preemptive process is powerful as it allows your application to take full advantage of multi-core computers; consequently, its results in a faster global execution time and more connected users. A 4D process may be preemptive or not according to compilation options and the use of the language, as explained in this post.

In order to benefit from this mode as much as possible we are pleased to announce that more than twenty existing commands have been enhanced and can now be used inside preemptive processes.

Most of them are about picture manipulation:

  • PICTURE TO BLOB
  • BLOB TO PICTURE
  • CREATE THUMBNAIL
  • CONVERT PICTURE
  • Picture Size
  • READ PICTURE FILE
  • WRITE PICTURE FILE
  • PICTURE CODEC LIST
  • PICTURE PROPERTIES
  • GET PICTURE FORMATS
  • COMBINE PICTURES
  • SET PICTURE FILE NAME
  • GET PICTURE FILE NAME
  • GET PICTURE METADATA
  • SET PICTURE METADATA
  • GET PICTURE KEYWORDS

And others are more global, and are certainly widely used in your existing applications:

  • Current user
  • GET TEXT KEYWORDS
  • LAUNCH EXTERNAL PROCESS
  • SET ENVIRONMENT VARIABLE
  • OPEN URL
  • Get localized string
  • EXPORT STRUCTURE
  • TRACE

If you use these commands inside processes compiled to run in cooperative mode, you may consider changing the settings in the method settings so as they can run in preemptive mode. Just remind that the commands that can be used in preemptive processes have the  icon in the documentation. Already over 500 of them now !

The full list of preemptive commands is available here in the documentation.

Roland Lannuzel
• Product Owner & 4D Expert •After studying electronics, Roland went into industrial IT as a developer and consultant, building solutions for customers with a variety of databases and technologies. In the late 80’s he fell in love with 4D and has used it in writing business applications that include accounting, billing and email systems.Eventually joining the company in 1997, Roland’s valuable contributions include designing specifications, testing tools, demos as well as training and speaking to the 4D community at many conferences. He continues to actively shape the future of 4D by defining new features and database development tools.