Browse Prior Art Database

Global Level Constructors and Destructors on Demand With Versions, With and Without Threads

IP.com Disclosure Number: IPCOM000207095D
Publication Date: 2011-May-16
Document File: 1 page(s) / 40K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for running global constructors where the Transaction Processing Facility (TPF) operating system runs the global constructors for each Shared Object (SO) before any function in that SO is executed. Once TPF determines which version of the SO to run, checks for the existence of global constructors and runs the constructors, if they exist.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 61% of the total text.

Page 01 of 1

Global Level Constructors and Destructors on Demand With Versions , With and Without Threads

In the C++ environment, class objects that are defined in the global scope need to have their constructors run before any functions in the module can be executed.

Most operating systems run all global constructors needed for a process before calling the main function. This may have performance impacts if the module that has the global object is never executed. The Transaction Processing Facility (TPF) operating system does not know of all the global constructors that may need to be run at the time the first function in a process is called. This is because of TPF's unique packaging and version codes. TPF allows one program to enter another, and there may be different versions of that program loaded at the same time.

This disclosure describes an approach for running global constructors where the TPF runs the global constructors for each Shared Object (SO) before any function in that SO is executed. Once TPF determines which version of the SO to run, checks for the existence of global constructors and runs the constructors, if they exist.

Determining which constructors to run during the execution of a process has two advantages. First, because TPF allows multiple versions of a program to be loaded at the same time, it would be difficult and resource consuming to run any needed global constructors during the initialization of a process. The second advantage is that unneeded...