@@ -404,13 +404,15 @@ class ClientSessionData
404404 PersistentUnorderedMap<J9Class *, ClassInfo> &getROMClassMap () { return _romClassMap; }
405405 PersistentUnorderedMap<J9Method *, J9MethodInfo> &getJ9MethodMap () { return _J9MethodMap; }
406406 PersistentUnorderedMap<ClassLoaderStringPair, TR_OpaqueClassBlock *> &getClassBySignatureMap () { return _classBySignatureMap; }
407+ PersistentUnorderedSet<J9Method*> &getDLTedMethodSet () { return _DLTedMethodSet; }
407408 PersistentUnorderedMap<J9Class *, ClassChainData> &getClassChainDataMap () { return _classChainDataMap; }
408409 PersistentUnorderedMap<J9ConstantPool *, TR_OpaqueClassBlock *> &getConstantPoolToClassMap () { return _constantPoolToClassMap; }
409410 void initializeUnloadedClassAddrRanges (const std::vector<TR_AddressRange> &unloadedClassRanges, int32_t maxRanges);
410411 void processUnloadedClasses (const std::vector<TR_OpaqueClassBlock*> &classes, bool updateUnloadedClasses);
411412 void processIllegalFinalFieldModificationList (const std::vector<TR_OpaqueClassBlock*> &classes);
412413 TR ::Monitor *getROMMapMonitor () { return _romMapMonitor; }
413414 TR ::Monitor *getClassMapMonitor () { return _classMapMonitor; }
415+ TR ::Monitor *getDLTSetMonitor () { return _DLTSetMonitor; }
414416 TR ::Monitor *getClassChainDataMapMonitor () { return _classChainDataMapMonitor; }
415417 TR_IPBytecodeHashTableEntry *getCachedIProfilerInfo (TR_OpaqueMethodBlock *method, uint32_t byteCodeIndex, bool *methodInfoPresent);
416418 bool cacheIProfilerInfo (TR_OpaqueMethodBlock *method, uint32_t byteCodeIndex, TR_IPBytecodeHashTableEntry *entry, bool isCompiled);
@@ -421,7 +423,7 @@ class ClientSessionData
421423 bool loadBytecodeDataFromSharedProfileCache (J9Method *method, bool stable, TR ::Compilation *comp, const std::string &ipdata);
422424 bool storeBytecodeProfileInSharedRepository (TR_OpaqueMethodBlock *method, const std::string &ipdata, uint64_t numSamples, bool isStable, TR ::Compilation *);
423425 VMInfo *getOrCacheVMInfo (JITServer::ServerStream *stream);
424- void clearCaches (bool locked=false ); // destroys _chTableClassMap, _romClassMap, _J9MethodMap and _unloadedClassAddresses
426+ void clearCaches (bool locked=false ); // destroys _chTableClassMap, _romClassMap, _J9MethodMap, _unloadedClassAddresses and _DLTedMethodSet
425427 void clearCachesLocked (TR_J9VMBase *fe);
426428 bool cachesAreCleared () const { return _requestUnloadedClasses; }
427429 void setCachesAreCleared (bool b) { _requestUnloadedClasses = b; }
@@ -580,12 +582,15 @@ class ClientSessionData
580582 // The following hashtable caches <classname> --> <J9Class> mappings
581583 // All classes in here are loaded by the systemClassLoader so we know they cannot be unloaded
582584 PersistentUnorderedMap<ClassLoaderStringPair, TR_OpaqueClassBlock*> _classBySignatureMap;
585+ // The set of j9methods that have been DLTed. This may be queried by the Inliner. Protected by _DLTSetMonitor.
586+ PersistentUnorderedSet<J9Method*> _DLTedMethodSet;
583587
584588 PersistentUnorderedMap<J9Class *, ClassChainData> _classChainDataMap;
585589 // Constant pool to class map
586590 PersistentUnorderedMap<J9ConstantPool *, TR_OpaqueClassBlock *> _constantPoolToClassMap;
587591 TR ::Monitor *_romMapMonitor;
588592 TR ::Monitor *_classMapMonitor;
593+ TR ::Monitor *_DLTSetMonitor; // Protects the set of methods that have been DLTed: _DLTedMethodSet
589594 TR ::Monitor *_classChainDataMapMonitor;
590595 // The following monitor is used to protect access to _lastProcessedCriticalSeqNo and
591596 // the list of out-of-sequence compilation requests (_OOSequenceEntryList)
0 commit comments