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


Groups > comp.os.linux.development.apps > #414

Re: object file memory

From Kaz Kylheku <kaz@kylheku.com>
Newsgroups comp.os.linux.development.apps
Subject Re: object file memory
Date 2012-02-06 23:07 +0000
Organization A noiseless patient Spider
Message-ID <20120207000059.76@kylheku.com> (permalink)
References <jgpkvf$c83$1@dont-email.me>

Show all headers | View raw


On 2012-02-06, Bill M <wpmccormick@just_about_everywhere.com> wrote:
> I have an object file foo.o that I want to link to an executable. The 
> main executable creates a number of child threads that use code and 
> variables from foo.o.

Do you have the source code for foo.o that you can tweak and recompile?

> I've included a very simplistic representation at 
> the end. My question is, how can each child thread (worker) get it's own 
> private copy of global variables foo_char and foo_int? Or does that just 
> happen auto-magically?

Why would that happen automagically? It's completely the wrong thing which
would break most programs.

> ** foo.c **
> char foo_char;
> int foo_int;

These are static variables, which are understood to be single-instance,
and any correct program relies on them being that way.  Automagically making
these thread-local would be broken behavior.

GCC has extensions for declaring statics thread local. Check the GCC
documentation for the setion on "Thread-Local Storage", but the gist of it is:

  __thread char foo_char;

There is also an explicit POSIX API for managing thread-specific values
accessed by keys: pthread_key_create, pthread_setspecific, etc.

Back to comp.os.linux.development.apps | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

object file memory Bill M <wpmccormick@just_about_everywhere.com> - 2012-02-06 16:41 -0600
  Re: object file memory Kaz Kylheku <kaz@kylheku.com> - 2012-02-06 23:07 +0000
    Re: object file memory Bill M <wpmccormick@just_about_everywhere.com> - 2012-02-07 08:23 -0600
      Re: object file memory Bill M <wpmccormick@just_about_everywhere.com> - 2012-02-07 08:40 -0600
        Re: object file memory Bill M <wpmccormick@just_about_everywhere.com> - 2012-02-07 08:58 -0600
      Re: object file memory Bill M <wpmccormick@just_about_everywhere.com> - 2012-02-07 11:21 -0600
        Re: object file memory "Ersek, Laszlo" <lacos@caesar.elte.hu> - 2012-02-07 22:09 +0100
          Re: object file memory Bill M <wpmccormick@just_about_everywhere.com> - 2012-02-07 16:08 -0600
            Re: object file memory Bill M <wpmccormick@just_about_everywhere.com> - 2012-02-08 20:42 -0600
              Re: object file memory Rainer Weikusat <rweikusat@mssgmbh.com> - 2012-02-09 19:00 +0000
            Re: object file memory Joe Beanfish <joe@nospam.duh> - 2012-02-09 11:15 -0500

csiph-web