Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1190
Modified Files: Tag: devel_0_37 d_soundfile.c Log Message: added debug messages (switched on by default)
Index: d_soundfile.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/d_soundfile.c,v retrieving revision 1.1.1.2.2.10 retrieving revision 1.1.1.2.2.11 diff -C2 -d -r1.1.1.2.2.10 -r1.1.1.2.2.11 *** d_soundfile.c 17 Jun 2004 07:56:57 -0000 1.1.1.2.2.10 --- d_soundfile.c 17 Jun 2004 16:42:33 -0000 1.1.1.2.2.11 *************** *** 916,919 **** --- 916,925 ---- static t_sfqueue * soundfiler_queue;
+ #define DEBUG + + #ifdef DEBUG + #define SFDEBUG + #endif + /* we fill the queue */ void soundfiler_queue_add(void (* process) (t_soundfiler *,t_symbol *, *************** *** 923,927 **** /* preparing argument vector */ t_atom * largv = copybytes (argv, argc * sizeof(t_atom)); ! static int i;
// make sure that the argument vector doesn't get lost --- 929,937 ---- /* preparing argument vector */ t_atom * largv = copybytes (argv, argc * sizeof(t_atom)); ! int i; ! ! #ifdef SFDEBUG ! post("adding process to queue"); ! #endif
// make sure that the argument vector doesn't get lost *************** *** 952,955 **** --- 962,969 ---- pthread_mutex_unlock(&(last_entry->mutex));
+ #ifdef SFDEBUG + post("\tentry has been prepared"); + #endif + /* inform the queue and the last element */ pthread_mutex_lock(&(soundfiler_queue->mutex)); *************** *** 967,974 **** soundfiler_queue->end=last_entry; }
if ( soundfiler_queue->begin == soundfiler_queue->end ) { - /* we should start the helper thread */ #ifdef DEBUG post("signaling"); --- 981,991 ---- soundfiler_queue->end=last_entry; } + #ifdef SFDEBUG + post("\t\tnew begin: %x",soundfiler_queue->begin); + post("\t\tnew end: %x",soundfiler_queue->end); + #endif
if ( soundfiler_queue->begin == soundfiler_queue->end ) { #ifdef DEBUG post("signaling"); *************** *** 991,999 **** void soundfiler_thread(void) { ! struct sched_param sf_param; ! sf_param.sched_priority=sched_get_priority_min(SCHED_FIFO)+1; ! #ifdef __linux__ - /* this doesn't work on windows .. i'll have to check it for osx */ if (sched_setscheduler(0,SCHED_FIFO,&sf_param) != -1) fprintf(stderr, "priority %d scheduling for soundfiler.\n", --- 1008,1014 ---- void soundfiler_thread(void) { ! ! /* #ifdef __linux__ if (sched_setscheduler(0,SCHED_FIFO,&sf_param) != -1) fprintf(stderr, "priority %d scheduling for soundfiler.\n", *************** *** 1003,1009 **** fprintf(stderr, "priority %d scheduling for soundfiler.\n", sf_param.sched_priority); ! #endif /* __linux__ */ ! !
while (1) --- 1018,1023 ---- fprintf(stderr, "priority %d scheduling for soundfiler.\n", sf_param.sched_priority); ! #endif ! */
while (1) *************** *** 1024,1027 **** --- 1038,1045 ---- /* locking process */ pthread_mutex_lock(&(soundfiler_queue->begin->mutex)); + + #ifdef SFDEBUG + post("working on process: %x",soundfiler_queue->begin); + #endif
/* create a copy that we can work on */ *************** *** 1031,1034 **** --- 1049,1057 ---- me->argv = copybytes (soundfiler_queue->begin->argv, soundfiler_queue->begin->argc * sizeof(t_atom)); + #ifdef SFDEBUG + post("\t\told begin: %x", soundfiler_queue->begin); + post("\t\told next: %x", soundfiler_queue->begin->next); + post("\t\told end: %x", soundfiler_queue->end); + #endif static int i; *************** *** 1069,1072 **** --- 1092,1099 ---- pthread_mutex_lock(&(soundfiler_queue->mutex)); pthread_mutex_lock(&(soundfiler_queue->begin->mutex)); + + #ifdef SFDEBUG + post("\tfreeing allocated memory"); + #endif /* freeing the memory we allocated */ *************** *** 1113,1118 **** --- 1140,1154 ---- /* the process struct */ freebytes(me,sizeof(t_sfprocess)); + #ifdef SFDEBUG + post("\t\tnew begin: %x", soundfiler_queue->begin); + post("\t\tnew end: %x", soundfiler_queue->end); + #endif + }; soundfiler_queue->end=NULL; + #ifdef SFDEBUG + post("\tbegin: %x", soundfiler_queue->begin); + post("\tend: %x", soundfiler_queue->end); + #endif }
*************** *** 1131,1139 **** pthread_mutex_unlock(&(soundfiler_queue->mutex));
! if (pthread_create(&sf_thread_id, NULL, ! (void *) soundfiler_thread,NULL) !=0) ! error("Couldn't create soundfiler thread"); else ! post("global soundfiler thread launched"); }
--- 1167,1188 ---- pthread_mutex_unlock(&(soundfiler_queue->mutex));
! pthread_attr_t sf_attr; ! pthread_attr_init(&sf_attr); ! struct sched_param sf_param; ! ! sf_param.sched_priority=sched_get_priority_min(SCHED_FIFO); ! ! pthread_attr_setdetachstate(&sf_attr,PTHREAD_CREATE_DETACHED); ! pthread_attr_setschedparam(&sf_attr,&sf_param); ! //pthread_attr_setschedpolicy(&sf_attr,SCHED_RR); ! pthread_attr_setinheritsched(&sf_attr,PTHREAD_EXPLICIT_SCHED); ! ! int status = pthread_create(&sf_thread_id, &sf_attr, ! (void *) soundfiler_thread,NULL); ! if ( status !=0) ! error("Couldn't create soundfiler thread: %d",status); else ! post("global soundfiler thread launched, priority: %d", ! sf_param.sched_priority); }