Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 446443
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T21:28:17+00:00 2026-05-12T21:28:17+00:00

In the class ReentrantReadWriteLock is the following curious comment: transient ThreadLocalHoldCounter readHolds; Sync() {

  • 0

In the class ReentrantReadWriteLock is the following curious comment:

transient ThreadLocalHoldCounter readHolds;

Sync() {
    readHolds = new ThreadLocalHoldCounter();
    setState(getState()); // ensures visibility of readHolds
}

what does it mean by “ensures visibility”? The reason I ask is that I have a situation where it looks as though the thread local readHolds is being reset (thread locals are implemented as WeakReferences so that shouldn’t happen as long as the containing Sync object is still alive). setState/getState simply alter another instance variable and don’t touch readHolds.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-12T21:28:17+00:00Added an answer on May 12, 2026 at 9:28 pm

    The setState(int) method performs an assignment to a volatile variable. This causes any assignments performed by the current thread—including readHolds—to be flushed to “main memory”.

    Other threads calling getState() read this same volatile variable. Since the variable is volatile, the thread’s cache is cleared first, forcing subsequent read operations to go out to main memory, where they will find the most recent value of readHolds.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

class xyz{ ... ... }; while(i<n){ xyz ob; ... ... } Do I need
class Catalog { // string StationTitle; string StationLocation; public: string StationTitle; Catalog() { StationTitle
class foo { const bar; } and to access it we have to do:
class Interface{}; class Foo: public Interface{}; class Bar{ public: vector<Interface*> getStuff(); private: vector<Foo*> stuff;
class ParentClass { public function list() { foreach ($this as $property => $value) {
class Foo(object): def __init__(self,x): self.x = x self.is_bar = False def __repr__(self): return str(self.x)
class B{ private: int a; } class D: public B{ private: int b; }
class Parent { public function __construct($method) { call_user_func(array($this, $method), 1); } } class Child
class class_name instance; class_name instance; The above all work with cl.exe , but is
class Position { private double x,y; private int id; public String toString(Position a){ String

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.