Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #103865

Re: Memory not updating in thread as expected

From Ben Bacarisse <ben.usenet@bsb.me.uk>
Newsgroups comp.lang.c
Subject Re: Memory not updating in thread as expected
Date 2017-02-14 11:07 +0000
Organization A noiseless patient Spider
Message-ID <87lgt9rpww.fsf@bsb.me.uk> (permalink)
References (1 earlier) <d52fe51a-1f8d-47fe-9283-5f1c13f5a05d@googlegroups.com> <ggg3acdd9s4h3p47f4488mns89opglousv@4ax.com> <o7tb2c$40o$1@dont-email.me> <o7ts13$d40$1@dont-email.me> <o7ufui$upl$1@dont-email.me>

Show all headers | View raw


David Brown <david.brown@hesbynett.no> writes:
<snip>

> To be honest, I am far from convinced that the C11 threading stuff is
> useful.  The atomics can be useful (though hard to understand), but
> threading is too specific to the OS in question - an abstraction like
> <threads.h> is not a good match.  For Linux, you want support for
> standard mutexes, fast mutexes, spinlocks, read-write locks, etc. - a
> library that gives you only simple condition variables and mutexes is
> not enough.

I would defer to your experience in this matter were it not for the fact
that I've heard this argument so many times over the decades.  We can't
just have loops and tests and function calls, we need computed gotos,
alternate returns and coroutines.  C's standard IO is just too crude, we
need access to the OS's record-oriented IO or what have you.

Don't get me wrong -- there will always be some cases where such an
argument is valid, and these arguments all had merit at the time due to
practical considerations, programmer experience and so on, but, in the
long run, programming has improved by offering having fewer, simpler and
more general abstractions.

The real solution is probably even higher-level abstractions at the
language level, but that's not an option for C in that C's niche will
always be a low-end of the abstraction spectrum.  So it seems at least
possible that C's threading and synchronisation mechanisms might become
the stdio.h of concurrency (in a decade or two).

The low-level mechanisms are a mess right now.  Alain Ketterlin
helpfully posted an example, but there a few things he was not sure
about.  Must the signal call be protected by the mutex, and could the
'while' used in waiting be an 'if' in this case?[1]  It all seems a bit
like the modern version of "can you jump over a declaration?".

[1] I don't want to sound curmudgeonly -- that poster was braver than I.
I considered offering an example but then thought about all the details
I'd have to check up on and how likely I would be to make a mess of it.
He clearly knows his stuff.  In fact, I think that asking when, and on
what systems, can you use 'if' like that with a condition variable would
make a good interview question!

-- 
Ben.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Memory not updating in thread as expected Test <test@.nil.invalid.com> - 2017-02-13 12:46 +0200
  Re: Memory not updating in thread as expected m.labanowicz@gmail.com - 2017-02-13 05:18 -0800
    Re: Memory not updating in thread as expected Test <test@.nil.invalid.com> - 2017-02-13 16:25 +0200
      Re: Memory not updating in thread as expected m.labanowicz@gmail.com - 2017-02-13 10:30 -0800
        Re: Memory not updating in thread as expected Jerry Stuckle <jstucklex@attglobal.net> - 2017-02-13 14:30 -0500
  Re: Memory not updating in thread as expected m.labanowicz@gmail.com - 2017-02-13 05:46 -0800
    Re: Memory not updating in thread as expected Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-13 14:30 +0000
      Re: Memory not updating in thread as expected "Chris M. Thomasson" <invalid@invalid.invalid> - 2017-02-13 15:13 -0800
    Re: Memory not updating in thread as expected Test <test@.nil.invalid.com> - 2017-02-13 16:36 +0200
      Re: Memory not updating in thread as expected David Brown <david.brown@hesbynett.no> - 2017-02-13 23:15 +0100
        Re: Memory not updating in thread as expected James Kuyper <jameskuyper@verizon.net> - 2017-02-13 22:04 -0500
          Re: Memory not updating in thread as expected David Brown <david.brown@hesbynett.no> - 2017-02-14 09:44 +0100
            Re: Memory not updating in thread as expected Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-14 11:07 +0000
              Re: Memory not updating in thread as expected David Brown <david.brown@hesbynett.no> - 2017-02-14 12:46 +0100
                Re: Memory not updating in thread as expected Robert Wessel <robertwessel2@yahoo.com> - 2017-02-16 05:12 -0600
                Re: Memory not updating in thread as expected David Brown <david.brown@hesbynett.no> - 2017-02-16 12:44 +0100
              Re: Memory not updating in thread as expected Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2017-02-14 15:53 +0100
                Re: Memory not updating in thread as expected Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-14 15:36 +0000
                Re: Memory not updating in thread as expected Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2017-02-14 17:58 +0100
                Re: Memory not updating in thread as expected Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-14 17:26 +0000
          Re: Memory not updating in thread as expected Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2017-02-14 10:43 +0100
            Re: Memory not updating in thread as expected Robert Wessel <robertwessel2@yahoo.com> - 2017-02-14 03:52 -0600
              Re: Memory not updating in thread as expected Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2017-02-14 11:36 +0100
              Re: Memory not updating in thread as expected supercat@casperkitty.com - 2017-02-14 05:31 -0800
  Re: Memory not updating in thread as expected Ken Brody <kenbrody@spamcop.net> - 2017-02-13 12:44 -0500
  Re: Memory not updating in thread as expected Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2017-02-13 10:58 -0700
  Re: Memory not updating in thread as expected "Chris M. Thomasson" <invalid@invalid.invalid> - 2017-02-14 15:13 -0800
    Re: Memory not updating in thread as expected "Chris M. Thomasson" <invalid@invalid.invalid> - 2017-02-14 16:37 -0800

csiph-web