From: <bi...@us...> - 2008-08-25 23:39:17
|
Revision: 3080 http://oorexx.svn.sourceforge.net/oorexx/?rev=3080&view=rev Author: bigrixx Date: 2008-08-25 23:39:05 +0000 (Mon, 25 Aug 2008) Log Message: ----------- add per-instance .local Modified Paths: -------------- sandbox/rick/local/interpreter/RexxClasses/CoreClasses.orx sandbox/rick/local/interpreter/api/ThreadContextStubs.cpp sandbox/rick/local/interpreter/classes/DirectoryClass.cpp sandbox/rick/local/interpreter/concurrency/ActivityManager.cpp sandbox/rick/local/interpreter/concurrency/ActivityManager.hpp sandbox/rick/local/interpreter/concurrency/RexxActivity.cpp sandbox/rick/local/interpreter/concurrency/RexxActivity.hpp sandbox/rick/local/interpreter/execution/RexxActivation.cpp sandbox/rick/local/interpreter/execution/RexxActivation.hpp sandbox/rick/local/interpreter/expression/BuiltinFunctions.cpp sandbox/rick/local/interpreter/parser/SourceFile.cpp sandbox/rick/local/interpreter/runtime/GlobalNames.h sandbox/rick/local/interpreter/runtime/Interpreter.cpp sandbox/rick/local/interpreter/runtime/Interpreter.hpp sandbox/rick/local/interpreter/runtime/InterpreterInstance.cpp sandbox/rick/local/interpreter/runtime/InterpreterInstance.hpp sandbox/rick/local/interpreter/runtime/RexxConstants.hpp sandbox/rick/local/interpreter/runtime/RexxMisc.cpp Modified: sandbox/rick/local/interpreter/RexxClasses/CoreClasses.orx =================================================================== --- sandbox/rick/local/interpreter/RexxClasses/CoreClasses.orx 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/RexxClasses/CoreClasses.orx 2008-08-25 23:39:05 UTC (rev 3080) @@ -98,6 +98,7 @@ server_mdict = .table~new server_mdict~put(.methods~server_init, 'INIT') +server_mdict~put(.methods~server_init_instance, 'INITINSTANCE') server~!define_methods(server_mdict) server~!rexxdefined /* Mark as unchangeable */ @@ -403,20 +404,29 @@ ::METHOD server_init /* initialize a server */ - expose localenv + expose input output error + /* set system objects in the local environment */ + input = .stream~new('STDIN')~~command('open nobuffer') + output = .stream~new('STDOUT')~~command('open nobuffer') + error = .stream~new('STDERR')~~command('open nobuffer') + self~initinstance +::METHOD server_init_instance + /* initialize a server */ + expose input output error + .local~objectname = "The Local Directory" -- give the local environment a nicer descriptive name. .local~setentry('LOCALSERVER', self) /* set system objects in the local environment */ - .local~setentry('STDIN',.stream~new('STDIN')~~command('open nobuffer')) + .local~setentry('STDIN', input) .local~setentry('INPUT',.monitor~new(.stdin)) .input~objectname = "The INPUT monitor" - .local~setentry('STDOUT',.stream~new('STDOUT')~~command('open nobuffer')) + .local~setentry('STDOUT', output) .local~setentry('OUTPUT',.monitor~new(.stdout)) .output~objectname = "The OUTPUT monitor" - .local~setentry('STDERR',.stream~new('STDERR')~~command('open nobuffer')) + .local~setentry('STDERR', error) .local~setentry('ERROR', .monitor~new(.stderr)) .error~objectname = "The ERROR monitor" Modified: sandbox/rick/local/interpreter/api/ThreadContextStubs.cpp =================================================================== --- sandbox/rick/local/interpreter/api/ThreadContextStubs.cpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/api/ThreadContextStubs.cpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -209,7 +209,7 @@ ApiContext context(c); try { - return (RexxDirectoryObject)ActivityManager::localEnvironment; + return (RexxDirectoryObject)context.activity->getLocal(); } catch (RexxNativeActivation *) { Modified: sandbox/rick/local/interpreter/classes/DirectoryClass.cpp =================================================================== --- sandbox/rick/local/interpreter/classes/DirectoryClass.cpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/classes/DirectoryClass.cpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -600,7 +600,7 @@ /* get as a string parameter */ _index = stringArgument(_index, ARG_ONE); // is this the .local object? We'll need to check with the security manager - if ((RexxDirectory *)(ActivityManager::localEnvironment) == this) + if (ActivityManager::getLocal() == this) { SecurityManager *manager = ActivityManager::currentActivity->getEffectiveSecurityManager(); temp = manager->checkLocalAccess(_index); Modified: sandbox/rick/local/interpreter/concurrency/ActivityManager.cpp =================================================================== --- sandbox/rick/local/interpreter/concurrency/ActivityManager.cpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/concurrency/ActivityManager.cpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -83,9 +83,6 @@ // number of active interpreter instances in this process size_t ActivityManager::interpreterInstances = 0; -// the local environment -RexxDirectory *ActivityManager::localEnvironment = OREF_NULL; - // global lock for the interpreter SysMutex ActivityManager::kernelSemaphore; @@ -129,7 +126,6 @@ nativeActivationCacheSize = NATIVE_ACTIVATION_CACHE_SIZE; currentActivity = OREF_NULL; - localEnvironment = new_directory(); } void ActivityManager::live(size_t liveMark) @@ -146,10 +142,9 @@ memory_mark(availableActivities); memory_mark(allActivities); memory_mark(activations); -memory_mark(nativeActivations); + memory_mark(nativeActivations); memory_mark(firstWaitingActivity); memory_mark(lastWaitingActivity); - memory_mark(localEnvironment); } void ActivityManager::liveGeneral(int reason) @@ -170,7 +165,6 @@ memory_mark_general(nativeActivations); memory_mark_general(firstWaitingActivity); memory_mark_general(lastWaitingActivity); - memory_mark_general(localEnvironment); } } @@ -305,10 +299,6 @@ /* done after uninit calls. incas */ /* uninits needed some. */ clearActivityPool(); - // if there are no activities yet to shutdown, we can terminate immediately. - // Otherwise, we need to wait for the rest of the threads to finish cleaning - // up. Once the last thread terminates, we can shutdown. - localEnvironment = OREF_NULL; /* no local environment */ } @@ -1011,6 +1001,39 @@ /** + * Retrieve a variable from the current local environment + * object. + * + * @param name The name of the environment variable. + * + * @return The object stored in .local at the requested name. + */ +RexxObject *ActivityManager::getLocalEnvironment(RexxString *name) +{ + if (currentActivity == OREF_NULL) + { + return TheNilObject; + } + return currentActivity->getLocalEnvironment(name); +} + + +/** + * Retrieve the current .local directory instance. + * + * @return The .local directory for the current activity. + */ +RexxDirectory *ActivityManager::getLocal() +{ + if (currentActivity == OREF_NULL) + { + return OREF_NULL; + } + return currentActivity->getLocal(); +} + + +/** * Enter a native context block. This will locate the appropriate * activity for this callback and acquire kernel access on that * activity. If this thread has never been used, then a new @@ -1067,3 +1090,4 @@ self->createLocalReference(o); return o; } + Modified: sandbox/rick/local/interpreter/concurrency/ActivityManager.hpp =================================================================== --- sandbox/rick/local/interpreter/concurrency/ActivityManager.hpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/concurrency/ActivityManager.hpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -93,9 +93,10 @@ static void relinquish(RexxActivity *activity); static RexxActivity *getRootActivity(); static RexxActivity *attachThread(); + static RexxObject *getLocalEnvironment(RexxString *name); + static RexxDirectory *getLocal(); static RexxActivity *currentActivity; // the currently active thread - static RexxDirectory *localEnvironment; // the .local environment static inline void postTermination() { Modified: sandbox/rick/local/interpreter/concurrency/RexxActivity.cpp =================================================================== --- sandbox/rick/local/interpreter/concurrency/RexxActivity.cpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/concurrency/RexxActivity.cpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -1851,12 +1851,13 @@ #endif } -RexxObject *RexxActivity::localMethod() + +RexxDirectory *RexxActivity::getLocal() /******************************************************************************/ /* Function: Retrive the activities local environment */ /******************************************************************************/ { - return ActivityManager::localEnvironment; // just return the .local directory + return instance->getLocal(); // just return the .local directory } thread_id_t RexxActivity::threadIdMethod() @@ -2657,7 +2658,7 @@ if (this->callTraceExit(activation, line)) { /* get the default output stream */ - RexxObject *stream = ActivityManager::localEnvironment->at(OREF_ERRORNAME); + RexxObject *stream = getLocalEnvironment(OREF_ERRORNAME); /* have .local set up yet? */ if (stream != OREF_NULL && stream != TheNilObject) { @@ -2681,7 +2682,7 @@ if (this->callSayExit(activation, line)) { /* get the default output stream */ - RexxObject *stream = ActivityManager::localEnvironment->at(OREF_OUTPUT); + RexxObject *stream = getLocalEnvironment(OREF_OUTPUT); /* have .local set up yet? */ if (stream != OREF_NULL && stream != TheNilObject) { @@ -2707,7 +2708,7 @@ if (this->callDebugInputExit(activation, value)) { /* get the input stream */ - RexxObject *stream = ActivityManager::localEnvironment->at(OREF_INPUT); + RexxObject *stream = getLocalEnvironment(OREF_INPUT); if (stream != OREF_NULL) /* have a stream? */ { /* read from it */ @@ -2739,7 +2740,7 @@ if (this->callPullExit(activation, value)) { /* get the external data queue */ - RexxObject *stream = ActivityManager::localEnvironment->at(OREF_REXXQUEUE); + RexxObject *stream = getLocalEnvironment(OREF_REXXQUEUE); if (stream != OREF_NULL) /* have a data queue? */ { /* pull from the queue */ @@ -2782,7 +2783,7 @@ if (this->callTerminalInputExit(activation, value)) { /* get the input stream */ - RexxObject *stream = ActivityManager::localEnvironment->at(OREF_INPUT); + RexxObject *stream = getLocalEnvironment(OREF_INPUT); if (stream != OREF_NULL) /* have a stream? */ { /* read from it */ @@ -2814,7 +2815,7 @@ if (this->callPushExit(activation, line, order)) { /* get the default queue */ - RexxObject *targetQueue = ActivityManager::localEnvironment->at(OREF_REXXQUEUE); + RexxObject *targetQueue = getLocalEnvironment(OREF_REXXQUEUE); if (targetQueue != OREF_NULL) /* have a data queue? */ { /* pull from the queue */ @@ -2998,3 +2999,16 @@ { return instance->resolveProgramName(name, dir, ext); } + + +/** + * Retrieve a value from the instance local environment. + * + * @param name The name of the .local object. + * + * @return The object stored at the given name. + */ +RexxObject *RexxActivity::getLocalEnvironment(RexxString *name) +{ + return instance->getLocalEnvironment(name); +} Modified: sandbox/rick/local/interpreter/concurrency/RexxActivity.hpp =================================================================== --- sandbox/rick/local/interpreter/concurrency/RexxActivity.hpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/concurrency/RexxActivity.hpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -199,10 +199,8 @@ void checkStackSpace(); void cleanupActivityResources(); void terminatePoolActivity(); - RexxObject *localMethod(); thread_id_t threadIdMethod(); bool isThread(thread_id_t id) { return currentThread.equals(id); } - void setShvVal(RexxString *); inline bool isClauseExitUsed() { return clauseExitUsed; } void queryTrcHlt(); bool callExit(RexxActivation * activation, const char *exitName, int function, int subfunction, void *exitbuffer); @@ -313,6 +311,8 @@ void createMethodContext(MethodContext &context, RexxNativeActivation *owner); void createCallContext(CallContext &context, RexxNativeActivation *owner); void createExitContext(ExitContext &context, RexxNativeActivation *owner); + RexxObject *getLocalEnvironment(RexxString *name); + RexxDirectory *getLocal(); static void initializeThreadContext(); Modified: sandbox/rick/local/interpreter/execution/RexxActivation.cpp =================================================================== --- sandbox/rick/local/interpreter/execution/RexxActivation.cpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/execution/RexxActivation.cpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -3644,7 +3644,7 @@ /******************************************************************************/ { /* get the handler from .local */ - RexxObject *novalue_handler = ActivityManager::localEnvironment->fastAt(OREF_NOVALUE); + RexxObject *novalue_handler = getLocalEnvironment(OREF_NOVALUE); if (novalue_handler != OREF_NULL) /* have a novalue handler? */ { /* ask it to process this */ @@ -4037,3 +4037,16 @@ } return activity->getInstanceSecurityManager(); } + + +/** + * Retrieve a value from the instance local environment. + * + * @param name The name of the .local object. + * + * @return The object stored at the given name. + */ +RexxObject *RexxActivation::getLocalEnvironment(RexxString *name) +{ + return activity->getLocalEnvironment(name); +} Modified: sandbox/rick/local/interpreter/execution/RexxActivation.hpp =================================================================== --- sandbox/rick/local/interpreter/execution/RexxActivation.hpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/execution/RexxActivation.hpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -338,6 +338,7 @@ RexxSource *getSourceObject(); PackageClass *getPackage(); RexxObject *getExecutableObject() { return executable; } + RexxObject *getLocalEnvironment(RexxString *name); inline void setCallType(RexxString *type) {this->settings.calltype = type; } inline void pushBlock(RexxDoBlock *block) { block->setPrevious(this->dostack); this->dostack = block; } Modified: sandbox/rick/local/interpreter/expression/BuiltinFunctions.cpp =================================================================== --- sandbox/rick/local/interpreter/expression/BuiltinFunctions.cpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/expression/BuiltinFunctions.cpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -1856,6 +1856,8 @@ } return result; /* return old trace setting */ } + + /* resolve a stream name */ RexxObject *resolve_stream( RexxString *name, /* name of the stream */ @@ -1883,31 +1885,31 @@ if (input) /* input operation? */ { /* get the default output stream */ - return ActivityManager::localEnvironment->at(OREF_INPUT); + return context->getLocalEnvironment(OREF_INPUT); } else { /* get the default output stream */ - return ActivityManager::localEnvironment->at(OREF_OUTPUT); + return context->getLocalEnvironment(OREF_OUTPUT); } } /* standard input stream? */ else if (name->strICompare(CHAR_STDIN) || name->strICompare(CHAR_CSTDIN)) { /* get the default output stream */ - return ActivityManager::localEnvironment->at(OREF_INPUT); + return context->getLocalEnvironment(OREF_INPUT); } /* standard output stream? */ else if (name->strICompare(CHAR_STDOUT) || name->strICompare(CHAR_CSTDOUT)) { /* get the default output stream */ - return ActivityManager::localEnvironment->at(OREF_OUTPUT); + return context->getLocalEnvironment(OREF_OUTPUT); } /* standard error stream? */ else if (name->strICompare(CHAR_STDERR) || name->strICompare(CHAR_CSTDERR)) { /* get the default output stream */ - return ActivityManager::localEnvironment->at(OREF_ERRORNAME); + return context->getLocalEnvironment(OREF_ERRORNAME); } else { @@ -1987,7 +1989,7 @@ if (context->getActivity()->callPullExit(context, result)) { /* get the default output stream */ - RexxObject *stream = ActivityManager::localEnvironment->at(OREF_REXXQUEUE); + RexxObject *stream = context->getLocalEnvironment(OREF_REXXQUEUE); /* pull from the queue */ return stream->sendMessage(OREF_LINEIN); } @@ -2078,7 +2080,7 @@ if (string != OREF_NULL) { /* have an actual string to write? */ /* get the default output stream */ - RexxObject *stream = ActivityManager::localEnvironment->at(OREF_REXXQUEUE); + RexxObject *stream = context->getLocalEnvironment(OREF_REXXQUEUE); /* push onto the queue */ return stream->sendMessage(OREF_QUEUENAME, string); } @@ -2167,7 +2169,7 @@ if (check_queue(name)) { /* is this "QUEUE:" */ /* get the default output stream */ - RexxObject *stream = ActivityManager::localEnvironment->at(OREF_REXXQUEUE); + RexxObject *stream = context->getLocalEnvironment(OREF_REXXQUEUE); /* return count on the queue */ result = stream->sendMessage(OREF_QUERY); } @@ -2365,7 +2367,7 @@ /* get the default output stream */ if (context->getActivity()->callQueueSizeExit(context, queuesize)) { - RexxObject *queue = ActivityManager::localEnvironment->at(OREF_REXXQUEUE); + RexxObject *queue = context->getLocalEnvironment(OREF_REXXQUEUE); /* return count on the queue */ return queue->sendMessage(OREF_QUEUED); } Modified: sandbox/rick/local/interpreter/parser/SourceFile.cpp =================================================================== --- sandbox/rick/local/interpreter/parser/SourceFile.cpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/parser/SourceFile.cpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -1588,7 +1588,7 @@ } /* send message to .local */ - classObject = (RexxClass *)(ActivityManager::localEnvironment->at(internalName)); + classObject = (RexxClass *)(ActivityManager::getLocalEnvironment(internalName)); if (classObject != OREF_NULL) { return classObject; Modified: sandbox/rick/local/interpreter/runtime/GlobalNames.h =================================================================== --- sandbox/rick/local/interpreter/runtime/GlobalNames.h 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/runtime/GlobalNames.h 2008-08-25 23:39:05 UTC (rev 3080) @@ -94,6 +94,7 @@ GLOBAL_NAME(HASHCODE, CHAR_HASHCODE) GLOBAL_NAME(INHERIT, CHAR_INHERIT) GLOBAL_NAME(INIT, CHAR_INIT) + GLOBAL_NAME(INITINSTANCE, CHAR_INITINSTANCE) GLOBAL_NAME(INITIALADDRESS, CHAR_INITIALADDRESS) GLOBAL_NAME(INPUT, CHAR_INPUT) GLOBAL_NAME(INSERT, CHAR_INSERT) Modified: sandbox/rick/local/interpreter/runtime/Interpreter.cpp =================================================================== --- sandbox/rick/local/interpreter/runtime/Interpreter.cpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/runtime/Interpreter.cpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -162,6 +162,21 @@ /** + * Initialize an instance .local object. + */ +void Interpreter::initLocal() +{ + // only do this if the local server has already been created. + if (localServer != OREF_NULL) + { + // this will insert the initial .local objects + ProtectedObject result; + localServer->messageSend(OREF_INITINSTANCE, 0, OREF_NULL, result); + } +} + + +/** * Terminate the global interpreter environment, shutting down * all of the interpreter instances that we can and releasing * the object heap memory. @@ -462,7 +477,7 @@ { RexxString *internalName = className->upper(); /* upper case it */ /* send message to .local */ - RexxClass *classObject = (RexxClass *)(ActivityManager::localEnvironment->at(internalName)); + RexxClass *classObject = (RexxClass *)(ActivityManager::getLocalEnvironment(internalName)); if (classObject != OREF_NULL) { return classObject; @@ -480,7 +495,7 @@ */ RexxString *Interpreter::getCurrentQueue() { - RexxObject *queue = ActivityManager::localEnvironment->at(OREF_REXXQUEUE); + RexxObject *queue = ActivityManager::getLocalEnvironment(OREF_REXXQUEUE); if (queue == OREF_NULL) /* no queue? */ { Modified: sandbox/rick/local/interpreter/runtime/Interpreter.hpp =================================================================== --- sandbox/rick/local/interpreter/runtime/Interpreter.hpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/runtime/Interpreter.hpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -94,6 +94,7 @@ static inline InterpreterInstance *createInterpreterInstance() { return createInterpreterInstance(NULL); } static bool terminateInterpreterInstance(InterpreterInstance *instance); static RexxString *getVersionNumber(); + static void initLocal(); static inline bool hasTimeSliceElapsed() { Modified: sandbox/rick/local/interpreter/runtime/InterpreterInstance.cpp =================================================================== --- sandbox/rick/local/interpreter/runtime/InterpreterInstance.cpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/runtime/InterpreterInstance.cpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -46,6 +46,7 @@ #include "ActivityManager.hpp" #include "RexxActivation.hpp" #include "PackageManager.hpp" +#include "DirectoryClass.hpp" /** * Create a new Package object instance. @@ -89,6 +90,7 @@ memory_mark(searchPath); memory_mark(searchExtensions); memory_mark(securityManager); + memory_mark(localEnvironment); } @@ -104,6 +106,7 @@ memory_mark_general(searchPath); memory_mark_general(searchExtensions); memory_mark_general(securityManager); + memory_mark_general(localEnvironment); } @@ -134,7 +137,10 @@ // associate the thread with this instance activity->setupAttachedActivity(this); - + // create a local environment + localEnvironment = new_directory(); + // now do the local initialization; + Interpreter::initLocal(); } @@ -669,3 +675,20 @@ { return rootActivity->getThreadContext(); } + + +/** + * Retrieve a value from the instance local environment. + * + * @param name The name of the .local object. + * + * @return The object stored at the given name. + */ +RexxObject *InterpreterInstance::getLocalEnvironment(RexxString *name) +{ + if (localEnvironment == OREF_NULL) + { + return TheNilObject; + } + return localEnvironment->at(name); +} Modified: sandbox/rick/local/interpreter/runtime/InterpreterInstance.hpp =================================================================== --- sandbox/rick/local/interpreter/runtime/InterpreterInstance.hpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/runtime/InterpreterInstance.hpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -48,6 +48,8 @@ #include "ActivationApiContexts.hpp" #include "SysInterpreterInstance.hpp" +class RexxDirectory; + class InterpreterInstance : public RexxInternalObject { // the SysInterpreterInstance is essentially an extension of this class, @@ -104,6 +106,8 @@ void setSecurityManager(RexxObject *m); RexxInstance *getInstanceContext() { return &context.instanceContext; } RexxThreadContext *getRootThreadContext(); + RexxObject *getLocalEnvironment(RexxString *); + inline RexxDirectory *getLocal() { return localEnvironment; } protected: @@ -120,11 +124,12 @@ RexxList *activeActivities; // the activity table RexxList *attachedActivities; // our list of attached vs. spawned activities RexxList *spawnedActivities; // activities this instance has spawned off - RexxIdentityTable *globalReferences; // our global reference table + RexxIdentityTable *globalReferences; // our global reference table RexxString *defaultEnvironment; // the default address environment RexxString *searchPath; // additional Rexx search path RexxList *searchExtensions; // extensions to search on for external calls void *applicationData; // application specific data + RexxDirectory *localEnvironment; // the current local environment bool terminating; // shutdown indicator bool terminated; // last thread cleared indicator Modified: sandbox/rick/local/interpreter/runtime/RexxConstants.hpp =================================================================== --- sandbox/rick/local/interpreter/runtime/RexxConstants.hpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/runtime/RexxConstants.hpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -36,7 +36,7 @@ /* */ /*----------------------------------------------------------------------------*/ /******************************************************************************/ -/* REXX Kernel RexxConstants.h */ +/* REXX Kernel RexxConstants.hpp */ /* */ /* Global Object REXX constants */ /* */ @@ -166,6 +166,7 @@ CHARCONSTANT(IMPORTEDROUTINES, "IMPORTEDROUTINES"); CHARCONSTANT(INDEX, "INDEX"); CHARCONSTANT(INHERIT, "INHERIT"); +CHARCONSTANT(INITINSTANCE, "INITINSTANCE"); CHARCONSTANT(INIT, "INIT"); CHARCONSTANT(INITIALADDRESS, SYSINITIALADDRESS); CHARCONSTANT(INPUT, "INPUT"); Modified: sandbox/rick/local/interpreter/runtime/RexxMisc.cpp =================================================================== --- sandbox/rick/local/interpreter/runtime/RexxMisc.cpp 2008-08-25 21:48:47 UTC (rev 3079) +++ sandbox/rick/local/interpreter/runtime/RexxMisc.cpp 2008-08-25 23:39:05 UTC (rev 3080) @@ -67,6 +67,6 @@ { /* just return the current local */ /* environment */ - return ActivityManager::localEnvironment; + return ActivityManager::getLocal(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |