equal
deleted
inserted
replaced
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; |