Xbasic

Free Threading

Description

This release introduces free-threaded execution. Xbasic is now thread-safe, allowing multiple requests to be processed at the same time rather than cooperatively sharing a single interpreter.

Overview

Previously, simultaneous web requests cooperatively shared the Xbasic interpreter. While one request was processing Xbasic, other requests waited until it finished or paused (for example, when accessing a database). The limitation stemmed from internal data that was not thread-safe.

Free threading removes that limitation so multiple, simultaneous requests can execute concurrently. The interpreter no longer needs to be cooperatively shared.

This change benefits web applications operating under high load or traffic spikes because requests no longer block one another while Xbasic code is executing.

Benefits

Higher throughput under load

Concurrent requests can run at the same time, which helps during bursts of traffic and steady high-load scenarios.

Better CPU utilization

Work can be executed across cores instead of having affinity to a single core, leading to more balanced processor usage.

Improved scalability

Multiple simultaneous requests can be processed at the same time rather than waiting for other requests to complete.

Classic Application Server setting

On the Performance tab of Server Settings, enable or disable Free threading for the classic server.

Development Server Settings: Free threading
Development Server Settings: Free threading

IIS and AlphaCloud publish setting

For IIS and AlphaCloud, use the Publish profile setting to enable Free threading.

Publish profile setting for Free threading (IIS / AlphaCloud)
Publish profile setting for Free threading (IIS / AlphaCloud)

Video

Test Page

See Also