Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.programming.threads > #939
| Path | csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!eternal-september.org!feeder.eternal-september.org!mx04.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Uncle Steve <stevet810@gmail.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 | Fri, 06 Jul 2012 14:33:34 -0400 |
| Organization | A noiseless patient Spider |
| Lines | 58 |
| Message-ID | <ae59a0e8476c24e-4cccf@gmail.com> (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> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=us-ascii |
| Content-Transfer-Encoding | 8bit |
| Injection-Info | mx04.eternal-september.org; posting-host="M1JqkNNJU2aX/HiSUuiK1A"; logging-data="3026"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+jlehye5Wuno1+SGB7ITOM" |
| User-Agent | nn 6.7.3 |
| Content-Length | 2499 |
| Cancel-Lock | sha1:11/QZhX05W/lZthIBXOkEsbOmC8= |
| Xref | csiph.com comp.lang.c:23114 comp.programming.threads:939 |
Cross-posted to 2 groups.
Show key headers only | View raw
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? 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. C has to recognize this watershed moment in the refinement of the language. 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? Regards, Uncle Steve -- The moon has never been closer.
Back to comp.programming.threads | Previous | Next — 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