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

  • Home
  • SEARCH
  • 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 8769299
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T17:18:19+00:00 2026-06-13T17:18:19+00:00

There is already a lot of information on software and hardware memory models, memory

  • 0

There is already a lot of information on software and hardware memory models, memory fences, store/load reordering etc. However, it all seems to focus on guaranteeing the relative ordering of reads and writes to and from shared memory.

Would it be legal behavior for such a system to delay the writes of a thread altogether for a potentially long time?

For example, consider a thread that does some updates to a data structure in memory and then raises a flag that is supposed to notify other threads of the update:

(dataWritten is initially false)
store value1
store value2
store value3
mfence
store dataWritten (true)

According to most memory models I’ve read about, the memory barrier guarantees that any other thread cannot observe dataWritten as true, while still reading stale values 1, 2 or 3, i.e. it makes these writes atomic.

But can I be sure that the writes will be seen at all? Would it be legal under the memory model to delay the writes indefinitely, as long as the flag isn’t written sooner than the values?

In database terms, can memory models be used to reason about durability (in addition to atomicity and consistency, which can be guaranteed by using memory fences and flags as in the example above)?

Update:
Detailed semantics of volatile regarding timeliness of visibility addresses the same topic in the context of the Java Memory Model, and Memory model ordering and visibility? for C++11. Does that discussion apply to hardware memory models as well, i.e. do CPU ISAs only give hard guarantees for correct visibility sequence, but “soft” guarantees for delayed visibility?

  • 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-06-13T17:18:20+00:00Added an answer on June 13, 2026 at 5:18 pm

    It’s difficult to prove a negative–there are a lot of instruction set architectures out there. However, I suspect you’re right that no hardware memory model makes any guarantees about eventual visibility for writes.

    I highly recommend reading A Formal Specification of Intel® Itanium® Processor Family Memory Ordering, because although you probably don’t care about Itanium, it’s an excellent and readable description of what guarantees hardware memory models typically are concerned with.

    As a practical matter, as long as a CPU is still executing instructions, it will have to flush its writes eventually. Further, as long as the write has hit L2 cache or thereabouts, it should normally be visible to other CPUs due to cache coherence protocols. So I don’t think this is something to be especially worried about.

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

Sidebar

Related Questions

There seems to be quite a lot of identical information on the Internet about
I know there are a lot of question already on this subject, but I
I know there is a lot of information out there about using the onItemClickListener
Is there already a handy CI 2 library for AWS SDK 1.5.x? If not,
There are already several questions with a similar title, but they received either no
There are already lots of questions on SO about exceptions, but I can't find
There are already a couple of questions on finding cycles, but I did not
There are already jQuery based Edit in place plug ins available. But i am
There's already a question on this here. But i want to know if its
There is already a similar question( link ).The thing is I don't understand what

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.