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


Groups > comp.lang.c > #7941

Re: The threading specs in the standard: a new catastrophe

From Ian Collins <ian-news@hotmail.com>
Newsgroups comp.std.c, comp.lang.c
Subject Re: The threading specs in the standard: a new catastrophe
Date 2011-07-08 17:10 +1200
Message-ID <97nhr2F6tbU3@mid.individual.net> (permalink)
References <iv422a$33k$1@speranza.aioe.org>

Cross-posted to 2 groups.

Show all headers | View raw


On 07/ 7/11 10:33 PM, jacob navia wrote:
> The committee has decided, for reasons unknown to me (there is no
> explanation why is this necessary anywhere) to go on with the flawed
> Dinkum library specs and proclaim that library as the new standard specs
> for the whole language, what will surely please Plauger but leaves the
> rest of us with a pile of errors.
>
> 1) The specs use concepts from C++ without furnishing the slightest
>      explanation of how those concepts should be understood within the C
>      language.
>
>     Examples:
>     --------
>     7.25.1.3
>     TSS_DTOR_ITERATIONS
>     which expands to an integer constant expression representing the
>      maximum number of times that destructors will be called when a
>      thread terminates.

This term is quite clear in the latest draft, see 7.26.1.4.

>     7.25.1.4
>     cnd_t
>     which is a complete object type that holds an identifier for a
>     condition variable;
>
>    How can a type "hold an identifier" ??? The committee defines in
>     6.4.2.1.2 an identifier as a sequence of letters that designates
>     one or more entities.
>     Now, we have the opposite: a type holds an identifier and nowhere
>     is explained what that should mean!

The type is an implementation detail, just like pthread_t is in POSIX.

> 2) The proposed functions are absurd.
>
>      Take, for instance, nothing less than the thread creation function
>      thrd_create:
>
>      int thrd_create(thrd_t *thr, thrd_start_t func,void *arg);
>
>      As you can see, there are *no arguments that can be passed to the
>      underlying operating system* to further specify the newly created
>      thread. (The "args" arument is an argument for the thread).
>
>      The pthreads standard (POSIX) proposes an "attributes" argument. The
>      Microsoft threads propose a "security attributes" and a set of flags
>      that further specify the newly created thread. The C API proposes
>      NOTHING so it is impossible to use.

In many (most) cases, the default values get passed in pthreads at least.

>      Since there is no way to specify the attributes, this function MUST
>      use the default attributes that are NOWHERE specified. This means
>      that two compiler systems could very well produce two different sets
>      of attributes to be passed to the underlying thread creation
>      functions so that we would have a differnt behavior for the same
>      source compiled in the same machine. This is completely ridiculous!

Agreed, there should be something there, even if it says they are 
implementation defined!

>      The mutex creation functions do not specify any security/ownership
>      specifications either.

Neither does POSIX.

>      The specifications are completely unusable in many other functions:
>      For instance:
>      The thrd_detach function tells the operating system to dispose of
>      any resources allocated to the thread identified by thr when that
>      thread terminates.
>
>      That's new to me. The OS should free all memory allocated by the
>      thread? Close all files? This is highly system dependent and
>      many systems could very well not do the cleanup until the process
>      that created those ressources stops.

Not *by* the thread *to* the thread.

> 3) New types are defined without any specification.
>      Example:
>      -------
>     The "xtime" data type is defined as
>     struct xtime { time_t sec; long nanoseconds; };

Fixed (gone) in current draft.

> 5) Error analysis is very difficult.
>
>      The proposed functions return the enum value "thrd_error" if
>      SOMETHING goes wrong. Impossible to know WHAT did go wrong since
>      nowhere is specified if errno should have a value set or how
>      to figure out WHAT HAPPENED!!! There is NO WAY that the running
>      program can communicate the reasons of failure so that we are
>      left in the dark as to why each error happens. The Microsoft API
>      specifies GetLastError() and pthreads have errno and other
>      mechanisms to further speicify what kind of error happened. This
>      specs ignore all that. It doesn't work, now go figure what happens
>      during HOURS of debugging!

At least in the current draft, the returns are no more or less 
informative than pthread_create (which does not set errno).

> I am repeating here in an expanded form the critique that I wrote
> in comp.std.c in a message on June 8th 2009. There was no answer then,
> and there has been no change since.

But there have, you quoted form an out of date draft!

-- 
Ian Collins

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


Thread

The threading specs in the standard: a new catastrophe jacob navia <jacob@spamsink.net> - 2011-07-07 12:33 +0200
  Re: The threading specs in the standard: a new catastrophe Juha Niskanen <juniskan@paju.oulu.fi.nospam> - 2011-07-07 12:46 +0000
  Re: The threading specs in the standard: a new catastrophe Todd Carnes <toddcarnes@gmail.com> - 2011-07-07 13:12 +0000
    Re: The threading specs in the standard: a new catastrophe jacob navia <jacob@spamsink.net> - 2011-07-07 17:11 +0200
      Re: The threading specs in the standard: a new catastrophe lawrence.jones@siemens.com - 2011-07-08 09:23 -0400
      Re: The threading specs in the standard: a new catastrophe Todd Carnes <toddcarnes@gmail.com> - 2011-07-08 15:20 +0000
  Re: The threading specs in the standard: a new catastrophe "christian.bau" <christian.bau@cbau.wanadoo.co.uk> - 2011-07-07 07:36 -0700
    Re: The threading specs in the standard: a new catastrophe jacob navia <jacob@spamsink.net> - 2011-07-07 17:09 +0200
      Re: The threading specs in the standard: a new catastrophe Jens Gustedt <Jens.Gustedt@loria.fr> - 2011-07-07 18:00 +0200
        Re: The threading specs in the standard: a new catastrophe jacob navia <jacob@spamsink.net> - 2011-07-07 18:20 +0200
  Re: The threading specs in the standard: a new catastrophe Wojtek Lerch <wojtek_l@yahoo.ca> - 2011-07-07 12:31 -0400
    Re: The threading specs in the standard: a new catastrophe Malcolm McLean <malcolm.mclean5@btinternet.com> - 2011-07-07 09:40 -0700
      Re: The threading specs in the standard: a new catastrophe Wojtek Lerch <wojtek_l@yahoo.ca> - 2011-07-07 14:42 -0400
        Re: The threading specs in the standard: a new catastrophe Chad <cdalten@gmail.com> - 2011-07-07 12:03 -0700
          Re: The threading specs in the standard: a new catastrophe Angel <angel+news@spamcop.net> - 2011-07-07 19:27 +0000
            Re: The threading specs in the standard: a new catastrophe Chad <cdalten@gmail.com> - 2011-07-07 12:55 -0700
              Re: The threading specs in the standard: a new catastrophe Angel <angel+news@spamcop.net> - 2011-07-07 20:13 +0000
    Re: The threading specs in the standard: a new catastrophe Ian Collins <ian-news@hotmail.com> - 2011-07-08 09:14 +1200
      Re: The threading specs in the standard: a new catastrophe Wojtek Lerch <wojtek_l@yahoo.ca> - 2011-07-07 23:58 -0400
        Re: The threading specs in the standard: a new catastrophe Ian Collins <ian-news@hotmail.com> - 2011-07-08 16:24 +1200
      Re: The threading specs in the standard: a new catastrophe Jens Gustedt <Jens.Gustedt@loria.fr> - 2011-07-08 12:14 +0200
        Re: The threading specs in the standard: a new catastrophe Marcin Grzegorczyk <mgrzegor@poczta.onet.pl> - 2011-07-10 00:02 +0200
          Re: The threading specs in the standard: a new catastrophe Jens Gustedt <Jens.Gustedt@loria.fr> - 2011-07-10 14:47 +0200
            Re: The threading specs in the standard: a new catastrophe Marcin Grzegorczyk <mgrzegor@poczta.onet.pl> - 2011-07-11 21:05 +0200
              Re: The threading specs in the standard: a new catastrophe Jens Gustedt <Jens.Gustedt@loria.fr> - 2011-07-11 22:50 +0200
                Re: The threading specs in the standard: a new catastrophe Marcin Grzegorczyk <mgrzegor@poczta.onet.pl> - 2011-07-11 23:56 +0200
                Re: The threading specs in the standard: a new catastrophe Jens Gustedt <Jens.Gustedt@loria.fr> - 2011-07-12 07:50 +0200
                Re: The threading specs in the standard: a new catastrophe Marcin Grzegorczyk <mgrzegor@poczta.onet.pl> - 2011-07-16 01:14 +0200
                Re: The threading specs in the standard: a new catastrophe Jens Gustedt <Jens.Gustedt@loria.fr> - 2011-07-16 10:08 +0200
                Re: The threading specs in the standard: a new catastrophe Miles Bader <miles@gnu.org> - 2011-07-18 11:11 +0900
                Re: The threading specs in the standard: a new catastrophe Alexander Terekhov <terekhov@web.de> - 2011-07-18 21:50 +0200
                Re: The threading specs in the standard: a new catastrophe Jens Gustedt <Jens.Gustedt@loria.fr> - 2011-07-19 08:36 +0200
                Re: The threading specs in the standard: a new catastrophe Alexander Terekhov <terekhov@web.de> - 2011-07-21 11:56 +0200
                Re: The threading specs in the standard: a new catastrophe Marcin Grzegorczyk <mgrzegor@poczta.onet.pl> - 2011-07-22 20:31 +0200
                Re: The threading specs in the standard: a new catastrophe Alexander Terekhov <terekhov@web.de> - 2011-07-22 21:36 +0200
                Re: The threading specs in the standard: a new catastrophe Jens Gustedt <Jens.Gustedt@loria.fr> - 2011-07-23 10:50 +0200
                Re: The threading specs in the standard: a new catastrophe Alexander Terekhov <terekhov@web.de> - 2011-07-23 20:29 +0200
                Re: The threading specs in the standard... Alexander Terekhov <terekhov@web.de> - 2011-08-03 15:50 +0200
  Re: The threading specs in the standard: a new catastrophe Marcin Grzegorczyk <mgrzegor@poczta.onet.pl> - 2011-07-07 23:07 +0200
    Re: The threading specs in the standard: a new catastrophe jacob navia <jacob@spamsink.net> - 2011-07-07 23:32 +0200
      Re: The threading specs in the standard: a new catastrophe jameskuyper <jameskuyper@gmail.com> - 2011-07-07 15:25 -0700
        Re: The threading specs in the standard: a new catastrophe sfuerst <svfuerst@gmail.com> - 2011-07-07 16:12 -0700
          Re: The threading specs in the standard: a new catastrophe James Kuyper <jameskuyper@verizon.net> - 2011-07-07 22:41 -0400
          Re: The threading specs in the standard: a new catastrophe "Chris M. Thomasson" <cristom@charter.net> - 2011-07-08 12:47 -0700
            Re: The threading specs in the standard: a new catastrophe sfuerst <svfuerst@gmail.com> - 2011-07-08 13:11 -0700
              Re: The threading specs in the standard: a new catastrophe "Chris M. Thomasson" <cristom@charter.net> - 2011-07-08 16:56 -0700
              Re: The threading specs in the standard: a new catastrophe Marcin Grzegorczyk <mgrzegor@poczta.onet.pl> - 2011-07-09 23:55 +0200
                Re: The threading specs in the standard: a new catastrophe sfuerst <svfuerst@gmail.com> - 2011-07-09 18:40 -0700
      Re: The threading specs in the standard: a new catastrophe "MikeP" <mp011011@some.org> - 2011-07-07 23:32 -0500
      Re: The threading specs in the standard: a new catastrophe lawrence.jones@siemens.com - 2011-07-08 10:09 -0400
        Re: The threading specs in the standard: a new catastrophe Shao Miller <sha0.miller@gmail.com> - 2011-07-08 10:31 -0400
  Re: The threading specs in the standard: a new catastrophe Shao Miller <sha0.miller@gmail.com> - 2011-07-08 00:38 -0400
  Re: The threading specs in the standard: a new catastrophe Ian Collins <ian-news@hotmail.com> - 2011-07-08 17:10 +1200
    Re: The threading specs in the standard: a new catastrophe James Kuyper <jameskuyper@verizon.net> - 2011-07-08 07:46 -0400
      Re: The threading specs in the standard: a new catastrophe Ian Collins <ian-news@hotmail.com> - 2011-07-08 23:52 +1200
        Re: The threading specs in the standard: a new catastrophe James Kuyper <jameskuyper@verizon.net> - 2011-07-08 08:23 -0400
          Re: The threading specs in the standard: a new catastrophe jacob navia <jacob@spamsink.net> - 2011-07-08 14:54 +0200
          Re: The threading specs in the standard: a new catastrophe Ian Collins <ian-news@hotmail.com> - 2011-07-09 08:26 +1200
        Re: The threading specs in the standard: a new catastrophe Seebs <usenet-nospam@seebs.net> - 2011-07-08 14:47 +0000
  Re: The threading specs in the standard: a new catastrophe Juha Niskanen <juniskan@paju.oulu.fi.nospam> - 2011-07-08 07:52 +0000

csiph-web