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


Groups > comp.lang.c > #103883

Re: Memory not updating in thread as expected

From Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid>
Newsgroups comp.lang.c
Subject Re: Memory not updating in thread as expected
Date 2017-02-14 15:53 +0100
Organization Université de Strasbourg
Message-ID <87r330259r.fsf@universite-de-strasbourg.fr.invalid> (permalink)
References (2 earlier) <ggg3acdd9s4h3p47f4488mns89opglousv@4ax.com> <o7tb2c$40o$1@dont-email.me> <o7ts13$d40$1@dont-email.me> <o7ufui$upl$1@dont-email.me> <87lgt9rpww.fsf@bsb.me.uk>

Show all headers | View raw


Ben Bacarisse <ben.usenet@bsb.me.uk> writes:

> 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).

I think threads are definitely too low-level and, well, too difficult
for regular application development. John Ousterhout has a nice set of
slides, at

http://www.cse.unsw.edu.au/~cs9242/07/lectures/10-threads.pdf

and here is a detailed analysis by Edward Lee:

http://ptolemy.eecs.berkeley.edu/publications/papers/06/problemwithThreads/

Frameworks like OpenMP or Cilk offer higher-level abstractions, but they
all have their own run-time environment, which may or may not suit one's
particular needs.

> 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?".

The C commitee member sitting in my cubicle confirms: there is no need
to lock the mutex to call cnd_signal() --- and this is a very bad
decision, making implementation awkward.

> [1] 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!

How nasty :-) I would say: use a loop unless you have exactly two
threads that interact/synchronize exactly once.

-- Alain.

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