The single-instance check should be disabled for conversions to enable concurrent execution. Would you be open to that kind of change?
If I bypass the single-instance check using SELinux (for testing purposes), concurrent conversions work as expected.

Thanks for the info! We don't use the provided scripts directly because we need a single command line for Windows and Linux and the way we execute qcad (CreateProcess) does not support the use of batch files. Furthermore, the Windows version logs to %TEMP% which is not what we want to happen in production. Also, I'm pretty sure this breaks multiple instances due to file sharing violations caused by sharing the log file:

Can you confirm the concurrency issue in case of dwg2pdf on Windows caused by the log? This would be beneficial for all users as well us should we ever manage to use the scripts directly. As for the log: why is the log needed at all in comparison to Linux? Logs that grow indefinitely are usually problematic in production.

horstr wrote:Can you confirm the concurrency issue in case of dwg2pdf on Windows caused by the log?

Yes, this can be an issue.

horstr wrote:As for the log: why is the log needed at all in comparison to Linux? Logs that grow indefinitely are usually problematic in production.

The log should not grow as it is overwritten on each run. You can easily disable logging in the batch file by streaming all output to NUL (>NUL). However, logs can be helpful for debugging. The log file is necessary under Windows because Windows applications are restricted to be either GUI applications or console applications but never both. I.e. QCAD cannot write to the console it was started from like under macOS/Linux.

Thanks, you're right. I missed the missing append (> vs. >>). We'd prefer not having to tell our customers to modify a third-party application - even if it's just a batch script. A workaround for the GUI/non-GUI issue is providing two executables (one GUI, one non-GUI) that effectively run the same code.