Best recent c99 example:
int foo[] = {
  [0] = 1,
  [1] = 2,
  [2] = 4,
  [3] = 8,
  [4] = 16,
  [5] = 32
};

I shudder to think about foo[6].

Paul

On Thursday, February 17, 2011, ron minnich <rminn...@gmail.com> wrote:
> I was looking at another fine example of modern programming from glibc
> and just had to share it.
>
> Where does the getpid happen? It's anyone's guess. This is just so
> readable too ... I'm glad they want to such effort to optimize getpid.
>
> ron
>
> #ifndef NOT_IN_libc
> static inline __attribute__((always_inline)) pid_t really_getpid (pid_t 
> oldval);
>
> static inline __attribute__((always_inline)) pid_t
> really_getpid (pid_t oldval)
> {
>   if (__builtin_expect (oldval == 0, 1))
>     {
>       pid_t selftid = THREAD_GETMEM (THREAD_SELF, tid);
>       if (__builtin_expect (selftid != 0, 1))
>         return selftid;
>     }
>
>   INTERNAL_SYSCALL_DECL (err);
>   pid_t result = INTERNAL_SYSCALL (getpid, err, 0);
>
>   /* We do not set the PID field in the TID here since we might be
>      called from a signal handler while the thread executes fork.  */
>   if (oldval == 0)
>     THREAD_SETMEM (THREAD_SELF, tid, result);
>   return result;
> }
> #endif
>
> pid_t
> __getpid (void)
> {
> #ifdef NOT_IN_libc
>   INTERNAL_SYSCALL_DECL (err);
>   pid_t result = INTERNAL_SYSCALL (getpid, err, 0);
> #else
>   pid_t result = THREAD_GETMEM (THREAD_SELF, pid);
>   if (__builtin_expect (result <= 0, 0))
>     result = really_getpid (result);
> #endif
>   return result;
> }
>
> libc_hidden_def (__getpid)
> weak_alias (__getpid, getpid)
> libc_hidden_def (getpid)
>
>

-- 
I'm migrating my email.  plalo...@telus.net will soon be disconnected.
 Please use paul.a.lalo...@gmail.com from now on.

Reply via email to