X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbctrace.C;h=7e453925487b01931c480a541f23f91541b44134;hp=7e279673729845fafc3775cfaaf686b8a1513909;hb=0c7b0aebb5e9f85f4eb7abb69b800d8d37b30b0f;hpb=54cc56bff09f5004b2a6cd454375f06e56acf5a0 diff --git a/cinelerra-5.1/guicast/bctrace.C b/cinelerra-5.1/guicast/bctrace.C index 7e279673..7e453925 100644 --- a/cinelerra-5.1/guicast/bctrace.C +++ b/cinelerra-5.1/guicast/bctrace.C @@ -309,6 +309,9 @@ void BC_Trace::dump_traces(FILE *fp) } } +void trace_info::set_owner() { owner = pthread_self(); } +void trace_info::unset_owner() { owner = 0; } + void BC_Trace::dump_locks(FILE *fp) { // Dump lock table @@ -316,8 +319,12 @@ void BC_Trace::dump_locks(FILE *fp) fprintf(fp,"signal_entry: lock table size=%d\n", lock_table.size); for( trace_item *tp=lock_table.first; tp!=0; tp=tp->next ) { lock_item *p=(lock_item*)tp; - fprintf(fp," %p %s %s %p%s\n", p->info, p->title, - p->loc, (void*)p->tid, p->is_owner ? " *" : ""); + fprintf(fp," %p %s, %s %p%s", + p->info, p->title, p->loc, + (void*)p->tid, p->is_owner ? " *" : ""); + if( p->info->owner && p->info->owner != p->tid ) + fprintf(fp," %p", (void*)p->info->owner); + fprintf(fp,"\n"); } int64_t lock_total = lock_table.total(); int64_t free_total = lock_free.total();