ELF24( 㿐'D`@  `  @`@ @`@`@  `  @`@`@  `  @`@  `  @`@ 㿐'D`@  ` ' @`@ @`@`@  ` + @`@`@  ` - @`@  ` . @`@ 㿈` @  ` 9 @` @  ` : @   @  ` ? @   @  ` @ @ d@   dD2EGJ\NrOPU^ʀ_now,}H~d׀5 6&L>MWSmTUVXɀY߀Z] g!n5oKpbrvstuƀv 7 P i  ΀   5 L c |  _ x   # Ԁ$ * 7 8 +9 A: X; p< = C G ŀO ـS U V ] 6^ RfsY|w7}Ӏ1G[q΀&;Ri~ʀ*fĀ0Ie+H'<RZ4N-c/yNʂ߀mǹ#>Wph;KXmĂڂe $DDDDPD`DlD|DDDD dD!tD"$$&Π%DD&D'D(PD)`D*lD+|D,D-D.D/dD0tD1$$5D5D6D9D:PD?D@DALDCXDDdDDd6d$l  ddeadlock.c/afs/athena.mit.edu/user/k/o/kolya/src/dpmutex/deadlock.cgcc2_compiled.int:t(0,1)=r(0,1);0020000000000;0017777777777;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,1);0020000000000;0017777777777;unsigned int:t(0,4)=r(0,1);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,1);0000000000000;0037777777777;long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777;short int:t(0,8)=r(0,8);-32768;32767;short unsigned int:t(0,9)=r(0,9);0;65535;signed char:t(0,10)=r(0,10);-128;127;unsigned char:t(0,11)=r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);16;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);4;0;complex double:t(0,17)=r(0,17);8;0;complex long double:t(0,18)=r(0,18);16;0;void:t(0,19)=(0,19)/mit/gnu/arch/sun4x_58/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../../sparc-sun-solaris2.8/include/assert.h/usr/include/pthread.h/usr/include/sys/types.h/usr/include/sys/isa_defs.h/usr/include/sys/feature_tests.h/usr/include/sys/machtypes.h_label_t:T(6,1)=s8val:(6,2)=ar(0,1);0;1;(0,3),0,64;;label_t:t(6,3)=(6,1)lock_t:t(6,4)=(0,11)/usr/include/sys/int_types.hint8_t:t(7,1)=(0,2)int16_t:t(7,2)=(0,8)int32_t:t(7,3)=(0,1)int64_t:t(7,4)=(0,6)uint8_t:t(7,5)=(0,11)uint16_t:t(7,6)=(0,9)uint32_t:t(7,7)=(0,4)uint64_t:t(7,8)=(0,7)intmax_t:t(7,9)=(7,4)uintmax_t:t(7,10)=(7,8)intptr_t:t(7,11)=(0,1)uintptr_t:t(7,12)=(0,4)int_least8_t:t(7,13)=(0,2)int_least16_t:t(7,14)=(0,8)int_least32_t:t(7,15)=(0,1)int_least64_t:t(7,16)=(0,6)uint_least8_t:t(7,17)=(0,11)uint_least16_t:t(7,18)=(0,9)uint_least32_t:t(7,19)=(0,4)uint_least64_t:t(7,20)=(0,7)longlong_t:t(3,1)=(0,6)u_longlong_t:t(3,2)=(0,7)t_scalar_t:t(3,3)=(0,3)t_uscalar_t:t(3,4)=(0,5)uchar_t:t(3,5)=(0,11)ushort_t:t(3,6)=(0,9)uint_t:t(3,7)=(0,4)ulong_t:t(3,8)=(0,5)caddr_t:t(3,9)=(3,10)=*(0,2)daddr_t:t(3,11)=(0,3)cnt_t:t(3,12)=(0,8)paddr_t:t(3,13)=(3,8)ptrdiff_t:t(3,14)=(0,1)pfn_t:t(3,15)=(3,8)pgcnt_t:t(3,16)=(3,8)spgcnt_t:t(3,17)=(0,3)use_t:t(3,18)=(3,5)sysid_t:t(3,19)=(0,8)index_t:t(3,20)=(0,8)timeout_id_t:t(3,21)=(3,22)=*(0,19)bufcall_id_t:t(3,23)=(3,22)off_t:t(3,24)=(0,3)off64_t:t(3,25)=(3,1)ino_t:t(3,26)=(3,8)blkcnt_t:t(3,27)=(0,3)fsblkcnt_t:t(3,28)=(3,8)fsfilcnt_t:t(3,29)=(3,8)ino64_t:t(3,30)=(3,2)blkcnt64_t:t(3,31)=(3,1)fsblkcnt64_t:t(3,32)=(3,2)fsfilcnt64_t:t(3,33)=(3,2)blksize_t:t(3,34)=(0,3) :T(3,35)=eB_FALSE:0,B_TRUE:1,;boolean_t:t(3,36)=(3,35)pad64_t:t(3,37)=(7,4)upad64_t:t(3,38)=(7,8)offset_t:t(3,39)=(3,1)u_offset_t:t(3,40)=(3,2)len_t:t(3,41)=(3,2)diskaddr_t:t(3,42)=(3,1)lloff_t:t(3,43)=(3,44)=u8_f:(3,39),0,64;_p:(3,45)=s8_u:(7,3),0,32;_l:(7,3),32,32;;,0,64;;lldaddr_t:t(3,46)=(3,47)=u8_f:(3,42),0,64;_p:(3,48)=s8_u:(7,3),0,32;_l:(7,3),32,32;;,0,64;;k_fltset_t:t(3,49)=(3,7)id_t:t(3,50)=(0,3)useconds_t:t(3,51)=(3,7)suseconds_t:t(3,52)=(0,3)major_t:t(3,53)=(3,8)minor_t:t(3,54)=(3,8)pri_t:t(3,55)=(0,8)o_mode_t:t(3,56)=(3,6)o_dev_t:t(3,57)=(0,8)o_uid_t:t(3,58)=(3,6)o_gid_t:t(3,59)=(3,58)o_nlink_t:t(3,60)=(0,8)o_pid_t:t(3,61)=(0,8)o_ino_t:t(3,62)=(3,6)key_t:t(3,63)=(0,1)mode_t:t(3,64)=(3,8)uid_t:t(3,65)=(0,3)gid_t:t(3,66)=(3,65)taskid_t:t(3,67)=(3,50)projid_t:t(3,68)=(3,50)pthread_t:t(3,69)=(3,7)pthread_key_t:t(3,70)=(3,7)_pthread_mutex:T(3,71)=s24__pthread_mutex_flags:(3,72)=s8__pthread_mutex_flag1:(7,6),0,16;__pthread_mutex_flag2:(7,5),16,8;__pthread_mutex_ceiling:(7,5),24,8;__pthread_mutex_type:(7,6),32,16;__pthread_mutex_magic:(7,6),48,16;;,0,64;__pthread_mutex_lock:(3,73)=u8__pthread_mutex_lock64:(3,74)=s8__pthread_mutex_pad:(3,75)=ar(0,1);0;7;(7,5),0,64;;,0,64;__pthread_mutex_lock32:(3,76)=s8__pthread_ownerpid:(7,7),0,32;__pthread_lockword:(7,7),32,32;;,0,64;__pthread_mutex_owner64:(3,38),0,64;;,64,64;__pthread_mutex_data:(3,38),128,64;;pthread_mutex_t:t(3,77)=(3,71)_pthread_cond:T(3,78)=s16__pthread_cond_flags:(3,79)=s8__pthread_cond_flag:(3,80)=ar(0,1);0;3;(7,5),0,32;__pthread_cond_type:(7,6),32,16;__pthread_cond_magic:(7,6),48,16;;,0,64;__pthread_cond_data:(3,38),64,64;;pthread_cond_t:t(3,81)=(3,78)_pthread_rwlock:T(3,82)=s64__pthread_rwlock_readers:(7,3),0,32;__pthread_rwlock_type:(7,6),32,16;__pthread_rwlock_magic:(7,6),48,16;__pthread_rwlock_pad1:(3,83)=ar(0,1);0;2;(3,38),64,192;__pthread_rwlock_pad2:(3,84)=ar(0,1);0;1;(3,38),256,128;__pthread_rwlock_pad3:(3,84),384,128;;pthread_rwlock_t:t(3,85)=(3,82)pthread_attr_t:t(3,86)=(3,87)=s4__pthread_attrp:(3,22),0,32;;pthread_mutexattr_t:t(3,88)=(3,89)=s4__pthread_mutexattrp:(3,22),0,32;;pthread_condattr_t:t(3,90)=(3,91)=s4__pthread_condattrp:(3,22),0,32;;pthread_once_t:t(3,92)=(3,93)=s32__pthread_once_pad:(3,94)=ar(0,1);0;3;(3,38),0,256;;pthread_rwlockattr_t:t(3,95)=(3,96)=s4__pthread_rwlockattrp:(3,22),0,32;;dev_t:t(3,97)=(3,8)nlink_t:t(3,98)=(3,8)pid_t:t(3,99)=(0,3)size_t:t(3,100)=(3,7)ssize_t:t(3,101)=(0,1)time_t:t(3,102)=(0,3)clock_t:t(3,103)=(0,3)clockid_t:t(3,104)=(0,1)timer_t:t(3,105)=(0,1)unchar:t(3,106)=(0,11)ushort:t(3,107)=(0,9)uint:t(3,108)=(0,4)ulong:t(3,109)=(0,5)u_char:t(3,110)=(0,11)u_short:t(3,111)=(0,9)u_int:t(3,112)=(0,4)u_long:t(3,113)=(0,5)_quad:T(3,114)=s8val:(3,115)=ar(0,1);0;1;(0,1),0,64;;quad_t:t(3,116)=(3,114)quad:t(3,117)=(3,116)/usr/include/sys/select.h/usr/include/sys/time.htimeval:T(9,1)=s8tv_sec:(3,102),0,32;tv_usec:(3,52),32,32;;timezone:T(9,2)=s8tz_minuteswest:(0,1),0,32;tz_dsttime:(0,1),32,32;;/usr/include/sys/types.hitimerval:T(9,3)=s16it_interval:(9,1),0,64;it_value:(9,1),64,64;;hrtime_t:t(9,4)=(3,1)/usr/include/time.h/usr/include/sys/types.h/usr/include/iso/time_iso.htm:T(13,1)=s36tm_sec:(0,1),0,32;tm_min:(0,1),32,32;tm_hour:(0,1),64,32;tm_mday:(0,1),96,32;tm_mon:(0,1),128,32;tm_year:(0,1),160,32;tm_wday:(0,1),192,32;tm_yday:(0,1),224,32;tm_isdst:(0,1),256,32;;/usr/include/sys/time_impl.htimespec:T(14,1)=s8tv_sec:(3,102),0,32;tv_nsec:(0,3),32,32;;timespec_t:t(14,2)=(14,1)timestruc_t:t(14,3)=(14,1)itimerspec:T(14,4)=s16it_interval:(14,1),0,64;it_value:(14,1),64,64;;itimerspec_t:t(14,5)=(14,4)sigval:T(11,1)=u4sival_int:(0,1),0,32;sival_ptr:(3,22),0,32;;sigevent:T(11,2)=s24sigev_notify:(0,1),0,32;sigev_signo:(0,1),32,32;sigev_value:(11,1),64,32;sigev_notify_function:(11,3)=*(11,4)=f(0,19),96,32;sigev_notify_attributes:(11,5)=*(3,86),128,32;__sigev_pad2:(0,1),160,32;;/usr/include/sys/select.hfd_mask:t(8,1)=(0,3)fds_mask:t(8,2)=(0,3)fd_set:T(8,3)=s128fds_bits:(8,4)=ar(0,1);0;31;(0,3),0,1024;;fd_set:t(8,5)=(8,3)/usr/include/sched.hsched_param:T(16,1)=s36sched_priority:(0,1),0,32;sched_nicelim:(0,1),32,32;sched_nice:(0,1),64,32;sched_pad:(16,2)=ar(0,1);0;5;(0,1),96,192;;_cleanup:T(2,1)=s16pthread_cleanup_pad:(2,2)=ar(0,1);0;3;(7,12),0,128;;_cleanup_t:t(2,3)=(2,1)_Voidfp:t(2,4)=(2,5)=*(2,6)=f(0,19)/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/va_list.h__va_list:t(19,1)=(3,22)/usr/include/stdio_tag.h__FILE:t(20,1)=(20,2)=xs__FILE:/usr/include/stdio_impl.h__FILE:T(20,2)=s16_cnt:(3,101),0,32;_ptr:(21,1)=*(0,11),32,32;_base:(21,1),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,4),112,2;__ionolock:(0,4),114,1;__filler:(0,4),115,5;;__longlong_t:t(18,1)=(0,6)FILE:t(18,2)=(20,1)fpos_t:t(18,3)=(0,3)fpos64_t:t(17,1)=(18,1)/usr/include/unistd.h/usr/include/sys/unistd.hdpmutex.htstate:T(24,1)=s40tid:(3,69),0,32;held:(24,2)=ar(0,1);0;29;(3,110),32,240;next:(24,3)=*(24,1),288,32;;dpmutex:T(24,4)=s64magic:(0,1),0,32;flags:(0,1),32,32;order:(0,1),64,32;owner:(3,69),96,32;dm:(3,77),128,192;pm:(3,77),320,192;;dpmutex_t:t(24,5)=(24,4)dpmutex_log:T(24,6)=edpmutex_log_init:0,dpmutex_log_lock:1,dpmutex_log_trylock:2,dpmutex_log_unlock:3,dpmutex_log_destroy:4,dpmutex_log_cond_wait:5,;my_lock_t:t(0,20)=(24,5)f:F(3,22)arg:p(3,22)g:F(3,22)arg:p(3,22)main:F(0,1)tid:(3,69)a:G(0,20)b:G(0,20)%s:%u: failed assertion `%s' deadlock.c0 == dpmutex_lock (&a)f locked a.. f trying to lock b.. 0 == dpmutex_lock (&b)Huh, f succeeded 0 == dpmutex_unlock (&a)0 == dpmutex_unlock (&b)f done g locked b.. g trying to lock a.. Huh, g succeeded g done 0 == dpmutex_init (&a, 1)0 == dpmutex_init (&b, 2)0 == pthread_create (&tid, NULL, &f, NULL)0 == pthread_create (&tid, NULL, &g, NULL)GCC: (GNU) 2.95.3 20010315 (release).symtab.strtab.shstrtab.text.rela.text.data.bss.stab.rela.stab.stabstr.rodata.comment4|!6  ,27  ==H  HLQ0XY2(&2Nb4p  6(u | @*4;A@CRTlYfdeadlock.cLetext*ABS*fadpmutex_lock__eprintfprintfsleepbdpmutex_unlockgmaindpmutex_initpthread_create  $ ( , 0 8 0< 0@P HT HXdl Xp Xt|       p p             $8 < @ D L P Td h l        p p         $ ( , 4 08 0<L P T\ ` dx |              ( (   4 8 < @ H 0L 0P` d l     P P       p p  0 4 8 < D H L`  d    |