exclusion macros ifdef, else and endif

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

Since valgrind shows me following I'm asking me if later code is
wrong. As putting the variables just after the if statement the
application runs more reliable.

valgrind --vgdb=yes --vgdb-error=0 --read-var-info=yes ./gsequencer
==11700== Memcheck, a memory error detector
==11700== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==11700== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==11700== Command: ./gsequencer
==11700==
==11700== (action at startup) vgdb me ...
==11700==
==11700== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==11700==   /path/to/gdb ./gsequencer
==11700== and then give GDB the following command
==11700==   target remote | /usr/lib/valgrind/../../bin/vgdb --pid=11700
==11700== --pid is optional if only one valgrind process is running
==11700==
==11700== Warning: bad signal number 268435456 in sigaction()
** Message: loading preferences for: /home/joelkraehemann/.gsequencer/ags.conf

(gsequencer:11700): GLib-GObject-WARNING **:
/build/glib2.0-ocmJ1Y/glib2.0-2.46.2/./gobject/gsignal.c:2516: signal
'stop' is invalid for instance '0x1338a2e0' of type 'AgsDevout'
==11700== Thread 6:
==11700== Conditional jump or move depends on uninitialised value(s)
==11700==    at 0x4C6DE5: ags_thread_loop (ags_thread-posix.c:2198)
==11700==    by 0x911A0A3: start_thread (pthread_create.c:309)
==11700==    by 0x941506C: clone (clone.S:111)
==11700==
==11700== (action on error) vgdb me ...
==11700== Continuing ...
==11700== Conditional jump or move depends on uninitialised value(s)
==11700==    at 0x4C6DF7: ags_thread_loop (ags_thread-posix.c:2204)
==11700==    by 0x911A0A3: start_thread (pthread_create.c:309)
==11700==    by 0x941506C: clone (clone.S:111)
==11700==
==11700== (action on error) vgdb me ...
==11700== Continuing ...
==11700== Gdb request to kill this process
joelkraehemann@debian:~/gsequencer$ valgrind --vgdb=yes --vgdb-error=0
--read-var-info=yes ./gsequencer
==11932== Memcheck, a memory error detector
==11932== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==11932== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==11932== Command: ./gsequencer
==11932==
==11932== (action at startup) vgdb me ...
==11932==
==11932== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==11932==   /path/to/gdb ./gsequencer
==11932== and then give GDB the following command
==11932==   target remote | /usr/lib/valgrind/../../bin/vgdb --pid=11932
==11932== --pid is optional if only one valgrind process is running
==11932==



    /* idle */
    if(g_atomic_pointer_get(&(thread->parent)) == NULL){
#ifdef AGS_USE_TIMER
      pthread_mutex_lock(thread->timer_mutex);

      if(!g_atomic_int_get(&(thread->timer_expired))){
        g_atomic_int_set(&(thread->timer_wait),
                         TRUE);

        while(!g_atomic_int_get(&(thread->timer_expired))){
          pthread_cond_wait(thread->timer_cond,
                            thread->timer_mutex);
        }
      }

      g_atomic_int_set(&(thread->timer_wait),
                         FALSE);
      g_atomic_int_set(&(thread->timer_expired),
                         FALSE);

      pthread_mutex_unlock(thread->timer_mutex);
#else
      long time_spent;

      static const long time_unit = NSEC_PER_SEC / AGS_THREAD_MAX_PRECISION;

      clock_gettime(CLOCK_MONOTONIC, &time_now);

      if(time_now.tv_sec > time_prev.tv_sec){
        time_spent = (time_now.tv_nsec) + (NSEC_PER_SEC - time_prev.tv_nsec);
      }else{
        time_spent = time_now.tv_nsec - time_prev.tv_nsec;
      }

      if(time_spent < time_unit){
        struct timespec timed_sleep = {
          0,
          0,
        };

        if(time_spent < time_unit){
          timed_sleep.tv_nsec = time_unit - time_spent;

          nanosleep(&timed_sleep, NULL);
        }
      }

      clock_gettime(CLOCK_MONOTONIC, &time_prev);
#endif
    }

Bests,
Joël




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux