hotspot/src/share/vm/classfile/classLoader.hpp
changeset 40887 8d35e19f5548
parent 40244 b3055c216762
child 41281 e1dc38ba642f
equal deleted inserted replaced
40886:98cb935dc074 40887:8d35e19f5548
    48 class JImageFile;
    48 class JImageFile;
    49 class ClassFileStream;
    49 class ClassFileStream;
    50 
    50 
    51 class ClassPathEntry : public CHeapObj<mtClass> {
    51 class ClassPathEntry : public CHeapObj<mtClass> {
    52 private:
    52 private:
    53   ClassPathEntry* _next;
    53   ClassPathEntry* volatile _next;
    54 public:
    54 public:
    55   // Next entry in class path
    55   // Next entry in class path
    56   ClassPathEntry* next() const { return _next; }
    56   ClassPathEntry* next() const {
       
    57     return (ClassPathEntry*) OrderAccess::load_ptr_acquire(&_next);
       
    58   }
    57   void set_next(ClassPathEntry* next) {
    59   void set_next(ClassPathEntry* next) {
    58     // may have unlocked readers, so write atomically.
    60     // may have unlocked readers, so ensure visibility.
    59     OrderAccess::release_store_ptr(&_next, next);
    61     OrderAccess::release_store_ptr(&_next, next);
    60   }
    62   }
    61   virtual bool is_jrt() = 0;
    63   virtual bool is_jrt() = 0;
    62   virtual bool is_jar_file() const = 0;
    64   virtual bool is_jar_file() const = 0;
    63   virtual const char* name() const = 0;
    65   virtual const char* name() const = 0;