The Workplace process is the one under which all the Workplace Shell classes are loaded and initialized. Therefore, objects representing Workplace Shell classes and their subclasses must run on this process. The Workplace process is actually launched from the Shell process, which is the process indicated in the SET PROTSHELL= statement in the CONFIG.SYS file. Once the Shell process is running, it starts the Workplace process. It is the Shell process that is responsible for restarting the Workplace process in the event that it is ended as a result of a trap. The PROTSHELL= statement in the CONFIG.SYS file indicates which process is to be launched as the Shell process. The SET RUNWORKPLACE= statement in the CONFIG.SYS file indicates which process is to be the Workplace process. In the default configuration, both the PROTSHELL and RUNWORKPLACE environment variables are set to PMSHELL.EXE. PMSHELL.EXE is designed to distinguish between being started as the Shell process versus being started as the Workplace process. The following diagram illustrates the initialization sequence:

         Shell Process                         Workplace Process
      ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿                    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
      ³                   ³                    ³               
      ³PMSHELL.EXE Session³                    ³   ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
      ³                   ³                    ³   ³ PMSHELL.EXE Session       ³
      ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ                    ³   ³                           ³
              ³                                ³   ³ If (Workplace_Process)    ³
              ³                                ³   ³     Start Workplace Shell ³
              ³                                ³   ÀÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
              ³                                ³               ³
                                              ³               
     Create Window List                        ³           SOM Is Initialized
     Start Starter Thread                      ³           Classes Are Loaded
           ³                                   ³           Desktop Is Opened
           ÀÄ Starter Thread                  ³           Restart List Is Processed
               {                               ÀÄÄÄÄÄÄÄÄÄ¿ Etc...
                 While (TRUE)                            ³
                 {                                       ³
                   If (Workplace Process Is Not Running) ³
                     Launch PMSHELL.EXE;                 ³
                 }                 ³                     ³
               }                   ³                     ³
                                   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


[Back] [Next]