![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: What do upcalls and the linker option /threads_enable=upcalls mean on OpenVMS VAX. Is two-level scheduling and upcalls actually implemented on OpenVMS VAX ? Why then the section "Two-Level Scheduling on OpenVMS" in the Guide to DECthreads "applies to Open VMS Alpha systems only" ? Is there a similar document for OpenVMS VAX systems ? The Answer is : The short answer is, the /THREADS_ENABLE qualifier on the LINKER command is supposed to be ignored on VAX, just as the on-line HELP text for the LINKER indicates. This is because upcalls are not supported on OpenVMS VAX. The real answer is considerably more complicated. Origianally, Compaq had intended to provide upcalls on OpenVMS VAX as well as on OpenVMS Alpha, keeping the platforms' offerings as uniform as possible. However, while this was a relatively straightforward exercise from the perspective of the DECthreads library -- DECthreads is implemented using a common source base between OpenVMS VAX and OpenVMS Alpha -- the OpenVMS executive code is completely separate for the two platforms, so the upcalls work was performed as separate projects. While other related ancillary efforts, such as the support in the LINKER for the /THREADS_ENABLE qualifier, were completed and documented, the support within the executive ran into complications, not the least of which was a requirement to avoid any "perturbing" of existing OpenVMS VAX applications. The initial coding was completed, but it was not integrated nor tested, and as a result it was and is not currently supported. But, the story doesn't end there. The support in the OpenVMS VAX executive was actually shipped, but it was expected to remain as latent support: while an application could enable upcalls via the LINKER qualifier, the DECthreads code was never supposed to actually request them from the OpenVMS executive. But, the DECthreads code which made the request was in a piece of conditionally compiled code which, after some point in time between the release of V7.1 and the release of the latest V7.1 patch, became active. So, if you are on a V7.2 or a recently patch V7.1 system, you actually can enable upcalls on VAX. Of course, they don't work, but you can enable them. Nevertheless, as as the OpenVMS Wizard indicated, they are unsupported. If Compaq should ever receive sufficient business justification for the addition of multi-threading on VAX, Compaq is in a position to perform the necessary testing to complete the work. Until that time, upcalls do not work on OpenVMS VAX. Likely the next functional release of OpenVMS (if not an ECO prior to then) will disable the upcalls.
|