Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.programming.threads > #940
| Path | csiph.com!usenet.pasdenom.info!gegeweb.org!de-l.enfer-du-nord.net!feeder1.enfer-du-nord.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail |
|---|---|
| From | Ian Collins <ian-news@hotmail.com> |
| Newsgroups | comp.lang.c, comp.programming.threads |
| Subject | Re: Clarification on the applicability of compile-time optimization to a struct variable which encompasses a mixture of fields declared as volatile and non-volatile individually |
| Date | Sat, 07 Jul 2012 11:29:02 +1200 |
| Lines | 67 |
| Message-ID | <a5paluFrmbU3@mid.individual.net> (permalink) |
| References | <94eafd27-6aba-4a17-9403-d42912312e6c@googlegroups.com> <0.8f83cddfeac55b9f2de1.20120705232249BST.87k3yhalvq.fsf@bsb.me.uk> <bca417a59725d29-f3cbf@gmail.com> <a5p35pFrmbU2@mid.individual.net> <7ee0b658ce2dc96-3111f@gmail.com> <jt7nqm$rcf$1@dont-email.me> <ae59a0e8476c24e-4cccf@gmail.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=ISO-8859-1; format=flowed |
| Content-Transfer-Encoding | 7bit |
| X-Trace | individual.net nOwZALTNCCuzPl2+GlnvnwKpJbJHpB8ZN1RVpkXwDI1Vc4jfyHDl81VDH21EMN9FYW |
| Cancel-Lock | sha1:Uw9ccO8W4IxIYnb1QwQGWT7aIgg= |
| User-Agent | Mozilla/5.0 (X11; SunOS i86pc; rv:12.0) Gecko/20120423 Thunderbird/12.0 |
| In-Reply-To | <ae59a0e8476c24e-4cccf@gmail.com> |
| Xref | csiph.com comp.lang.c:23118 comp.programming.threads:940 |
Cross-posted to 2 groups.
Show key headers only | View raw
On 07/ 7/12 06:33 AM, Uncle Steve wrote: > On Fri, Jul 06, 2012 at 06:11:28PM -0400, Eric Sosman wrote: >> On 7/6/2012 2:01 PM, Uncle Steve wrote: >>> On Sat, Jul 07, 2012 at 09:20:57AM +1200, Ian Collins wrote: >>>> On 07/ 7/12 05:08 AM, Uncle Steve wrote: >>>>> [...] >>>>> This is a concern in my mind right now as I'm writing some posix >>>>> threads code, and so obviously there are a large number of variables >>>>> which ought to be declared volatile. >>>> >>>> What leads you to that conclusion? That line of though usually implies >>>> you are misunderstanding the relationship between volatile and threads. >>>> >>>> What are you trying to achieve with volatile? >>> >>> Well, I have some data structures that will be accessed from arbitrary >>> threads, so I want to make sure there's no funny business happening >>> behind the scenes where the compiler decides that certain accesses are >>> optional. >> >> Although the latest "C11" Standard adds some multi-threading >> support, I'll ignore that because (1) C11 implementations are not >> exactly thick upon the ground as yet, (2) you mentioned you're >> using Pthreads anyhow, and (3) I haven't studied the C11 threading >> stuff closely enough to be a competent commentator. ;-) >> >> So: As long as you're using an established non-C-specific >> threading framework, I suggest you visit comp.programming.threads, >> a newsgroup devoted to multi-threading issues. There you will learn >> that `volatile' is neither necessary *nor* sufficient in connection >> with variables shared between threads. (You needn't take my word on >> this: Just browse the comp.programming.threads archives and you'll >> see the local experts refuting this misunderstanding every couple >> weeks. It's comp.programming.threads' equivalent of `void main'.) >> >> Or, as my first threading teacher put it, "Don't Do That." > > Is there are C standard threading framework? Yes, read C11. If you are familiar with pthreads, you'll see where most of the new primitives originate. > Threaded code is a de-facto reality in today's multi-core environment. > Save for the embedded sector, most systems will run threads in > parallel, and that is that. Only if you incorporate threads in your code either explicitly or implicitly with something like OpenMP. > C has to recognize this watershed moment > in the refinement of the language. It has. > While the specifics of an implementation within a given operating > system are not C issues, certain common optimizations can be a problem > with certain algorithms, and so there ought to be a C solution to the > problem. What is it about the volatile attribute that makes it > insufficient in your mind to the problem presented by threaded code? Given you are the one going against conventional wisdom, what in your mind makes volatile a solution to the problem presented by threaded code? In addition, what is "the problem presented by threaded code"? -- Ian Collins
Back to comp.programming.threads | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: Clarification on the applicability of compile-time optimization to a struct variable which encompasses a mixture of fields declared as volatile and non-volatile individually Uncle Steve <stevet810@gmail.com> - 2012-07-06 14:33 -0400
Re: Clarification on the applicability of compile-time optimization to a struct variable which encompasses a mixture of fields declared as volatile and non-volatile individually Ian Collins <ian-news@hotmail.com> - 2012-07-07 11:29 +1200
Re: Clarification on the applicability of compile-time optimization to a struct variable which encompasses a mixture of fields declared as volatile and non-volatile individually Uncle Steve <stevet810@gmail.com> - 2012-07-06 16:27 -0400
Re: Clarification on the applicability of compile-time optimization to a struct variable which encompasses a mixture of fields declared as volatile and non-volatile individually Ian Collins <ian-news@hotmail.com> - 2012-07-07 12:37 +1200
Re: Clarification on the applicability of compile-time optimization to a struct variable which encompasses a mixture of fields declared as volatile and non-volatile individually Uncle Steve <stevet810@gmail.com> - 2012-07-06 17:29 -0400
Re: Clarification on the applicability of compile-time optimization to a struct variable which encompasses a mixture of fields declared as volatile and non-volatile individually Ian Collins <ian-news@hotmail.com> - 2012-07-07 15:50 +1200
Re: Clarification on the applicability of compile-time optimization to a struct variable which encompasses a mixture of fields declared as volatile and non-volatile individually Uncle Steve <stevet810@gmail.com> - 2012-07-06 19:55 -0400
Re: Clarification on the applicability of compile-time optimization to a struct variable which encompasses a mixture of fields declared as volatile and non-volatile individually Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2012-07-07 17:04 +0300
Re: Clarification on the applicability of compile-time optimization to a struct variable which encompasses a mixture of fields declared as volatile and non-volatile individually Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-07-07 08:16 -0400
Re: Clarification on the applicability of compile-time optimization to a struct variable which encompasses a mixture of fields declared as volatile and non-volatile individually Uncle Steve <stevet810@gmail.com> - 2012-07-07 05:09 -0400
csiph-web