Older 16-bit applications can hang the NTVDM subsystem in Windows when executed via the newer 11.3 SystemAgent. This results in an initial job run for a 16-bit application succeeding, while subsequent runs fail due to the hanging NTVDM. Hanging NTVDM processes must be killed before any “16-bit” job runs can again run to success.
All 16-bit applications are single-threaded but modern versions of Windows and the 11.3 SystemAgent are multi-threaded. In order to successfully run a single-threaded 16-bit application via the SystemAgent it is necessary to start the 16-bit program using the following syntax:
start /b /AFFINITY 0x1 <command>
The /b switch run the process in the background which is necessary to capture any stdout or stderr associated with the program execution.
The /AFFINITY 0x1 switch sets the processor affinity for the application which forces it to run single-threaded on a single CPU.
Hey Mark -- Thanks its like something that you and I just talked about on Monday, awesome! I still am in a wonder of how there are still 16bit programs out there personally. Love those Tech Tips!!
one word.. amazing.
I am sure some of you are wondering... yes, this concern has been brought up enough times that it now gets its own Tech Tip.