This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

exclusion macros ifdef, else and endif


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 Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]