home *** CD-ROM | disk | FTP | other *** search
/ Game Programming - All in One (3rd Edition) / game_prog_all_in_one_3rd_ed.iso / sources / chapter21 / MultiThread / MultiThread.opt / Debugger < prev    next >
Unknown  |  2004-04-07  |  5.0 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert PC Paintbrush Image (image/pcx) magic Supported
100% file data default
100% TrID PCX bitmap (v2.5) default (weak)
100% lsar LZMA_Alone default (weak)
100% xdgMime image/vnd.zbrush.pcx default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0a 00 03 00 00 00 00 00 | 00 00 ff ff ff ff 00 00 |........|........|
|00000010| 00 00 04 00 00 00 06 57 | 61 74 63 68 31 00 00 06 |.......W|atch1...|
|00000020| 57 61 74 63 68 32 00 00 | 06 57 61 74 63 68 33 00 |Watch2..|.Watch3.|
|00000030| 00 06 57 61 74 63 68 34 | 00 00 00 00 00 00 00 00 |..Watch4|........|
|00000040| 01 00 00 00 54 68 72 65 | 61 64 20 2d 20 57 69 6e |....Thre|ad - Win|
|00000050| 33 32 20 44 65 62 75 67 | 1b 4d 75 6c 74 69 54 68 |32 Debug|.MultiTh|
|00000060| 72 65 61 64 20 2d 20 57 | 69 6e 33 32 20 52 65 6c |read - W|in32 Rel|
|00000070| 65 61 73 65 02 00 00 00 | 01 80 00 00 00 00 00 00 |ease....|........|
|00000080| 00 00 19 4d 75 6c 74 69 | 54 68 72 65 61 64 20 2d |...Multi|Thread -|
|00000090| 20 57 69 6e 33 32 20 44 | 65 62 75 67 02 00 00 00 | Win32 D|ebug....|
|000000a0| 01 80 00 00 00 00 02 00 | 00 00 ea 05 01 00 00 00 |........|........|
|000000b0| 02 00 00 00 fb 05 01 00 | 00 00 00 00 00 00 06 08 |........|........|
|000000c0| 14 53 53 42 52 00 01 00 | 0b 00 43 54 61 72 67 65 |.SSBR...|..CTarge|
|000000d0| 74 49 74 65 6d 19 4d 75 | 6c 74 69 54 68 72 65 61 |tItem.Mu|ltiThrea|
|000000e0| 64 20 2d 20 57 69 6e 33 | 32 20 44 65 62 75 67 00 |d - Win3|2 Debug.|
|000000f0| 00 00 00 06 08 14 53 53 | 42 52 0c 53 6f 75 72 63 |......SS|BR.Sourc|
|00000100| 65 20 46 69 6c 65 73 01 | 00 0a 00 43 50 72 6f 6a |e Files.|...CProj|
|00000110| 47 72 6f 75 70 06 08 14 | 53 53 42 52 05 08 14 44 |Group...|SSBR...D|
|00000120| 4a 57 0c 48 65 61 64 65 | 72 20 46 69 6c 65 73 01 |JW.Heade|r Files.|
|00000130| 00 0a 00 43 50 72 6f 6a | 47 72 6f 75 70 06 08 14 |...CProj|Group...|
|00000140| 53 53 42 52 05 08 14 44 | 4a 57 0e 52 65 73 6f 75 |SSBR...D|JW.Resou|
|00000150| 72 63 65 20 46 69 6c 65 | 73 01 00 0a 00 43 50 72 |rce File|s....CPr|
|00000160| 6f 6a 47 72 6f 75 70 06 | 08 14 53 53 42 52 05 08 |ojGroup.|..SSBR..|
|00000170| 14 44 4a 57 03 64 65 70 | 01 00 14 00 43 44 65 70 |.DJW.dep|....CDep|
|00000180| 65 6e 64 65 6e 63 79 43 | 6f 6e 74 61 69 6e 65 72 |endencyC|ontainer|
|00000190| 06 08 14 53 53 42 52 04 | 33 64 2e 68 01 00 0f 00 |...SSBR.|3d.h....|
|000001a0| 43 44 65 70 65 6e 64 65 | 6e 63 79 46 69 6c 65 06 |CDepende|ncyFile.|
|000001b0| 08 14 53 53 42 52 06 64 | 72 61 77 2e 68 01 00 0f |..SSBR.d|raw.h...|
|000001c0| 00 43 44 65 70 65 6e 64 | 65 6e 63 79 46 69 6c 65 |.CDepend|encyFile|
|000001d0| 06 08 14 53 53 42 52 07 | 61 6c 77 69 6e 2e 68 01 |...SSBR.|alwin.h.|
|000001e0| 00 0f 00 43 44 65 70 65 | 6e 64 65 6e 63 79 46 69 |...CDepe|ndencyFi|
|000001f0| 6c 65 06 08 14 53 53 42 | 52 08 61 6c 6d 73 76 63 |le...SSB|R.almsvc|
|00000200| 2e 68 01 00 0f 00 43 44 | 65 70 65 6e 64 65 6e 63 |.h....CD|ependenc|
|00000210| 79 46 69 6c 65 06 08 14 | 53 53 42 52 05 67 75 69 |yFile...|SSBR.gui|
|00000220| 2e 68 01 00 0f 00 43 44 | 65 70 65 6e 64 65 6e 63 |.h....CD|ependenc|
|00000230| 79 46 69 6c 65 06 08 14 | 53 53 42 52 0a 63 6f 6d |yFile...|SSBR.com|
|00000240| 70 69 6c 65 64 2e 68 01 | 00 0f 00 43 44 65 70 65 |piled.h.|...CDepe|
|00000250| 6e 64 65 6e 63 79 46 69 | 6c 65 06 08 14 53 53 42 |ndencyFi|le...SSB|
|00000260| 52 08 73 74 72 65 61 6d | 2e 68 01 00 0f 00 43 44 |R.stream|.h....CD|
|00000270| 65 70 65 6e 64 65 6e 63 | 79 46 69 6c 65 06 08 14 |ependenc|yFile...|
|00000280| 53 53 42 52 07 64 65 62 | 75 67 2e 68 01 00 0f 00 |SSBR.deb|ug.h....|
|00000290| 43 44 65 70 65 6e 64 65 | 6e 63 79 46 69 6c 65 06 |CDepende|ncyFile.|
|000002a0| 08 14 53 53 42 52 0a 6b | 65 79 62 6f 61 72 64 2e |..SSBR.k|eyboard.|
|000002b0| 68 01 00 0f 00 43 44 65 | 70 65 6e 64 65 6e 63 79 |h....CDe|pendency|
|000002c0| 46 69 6c 65 06 08 14 53 | 53 42 52 09 63 6f 6c 6f |File...S|SBR.colo|
|000002d0| 72 2e 69 6e 6c 01 00 0f | 00 43 44 65 70 65 6e 64 |r.inl...|.CDepend|
|000002e0| 65 6e 63 79 46 69 6c 65 | 06 08 14 53 53 42 52 07 |encyFile|...SSBR.|
|000002f0| 66 69 78 65 64 2e 68 01 | 00 0f 00 43 44 65 70 65 |fixed.h.|...CDepe|
|00000300| 6e 64 65 6e 63 79 46 69 | 6c 65 06 08 14 53 53 42 |ndencyFi|le...SSB|
|00000310| 52 09 61 6c 70 6c 61 74 | 66 2e 68 01 00 0f 00 43 |R.alplat|f.h....C|
|00000320| 44 65 70 65 6e 64 65 6e | 63 79 46 69 6c 65 06 08 |Dependen|cyFile..|
|00000330| 14 53 53 42 52 0a 64 61 | 74 61 66 69 6c 65 2e 68 |.SSBR.da|tafile.h|
|00000340| 01 00 0f 00 43 44 65 70 | 65 6e 64 65 6e 63 79 46 |....CDep|endencyF|
|00000350| 69 6c 65 06 08 14 53 53 | 42 52 06 71 75 61 74 2e |ile...SS|BR.quat.|
|00000360| 68 01 00 0f 00 43 44 65 | 70 65 6e 64 65 6e 63 79 |h....CDe|pendency|
|00000370| 46 69 6c 65 06 08 14 53 | 53 42 52 07 73 63 68 65 |File...S|SBR.sche|
|00000380| 64 2e 68 01 00 0f 00 43 | 44 65 70 65 6e 64 65 6e |d.h....C|Dependen|
|00000390| 63 79 46 69 6c 65 06 08 | 14 53 53 42 52 0a 61 6c |cyFile..|.SSBR.al|
|000003a0| 63 6f 6d 70 61 74 2e 68 | 01 00 0f 00 43 44 65 70 |compat.h|....CDep|
|000003b0| 65 6e 64 65 6e 63 79 46 | 69 6c 65 06 08 14 53 53 |endencyF|ile...SS|
|000003c0| 42 52 0a 73 79 73 74 65 | 6d 2e 69 6e 6c 01 00 0f |BR.syste|m.inl...|
|000003d0| 00 43 44 65 70 65 6e 64 | 65 6e 63 79 46 69 6c 65 |.CDepend|encyFile|
|000003e0| 06 08 14 53 53 42 52 07 | 72 6c 65 2e 69 6e 6c 01 |...SSBR.|rle.inl.|
|000003f0| 00 0f 00 43 44 65 70 65 | 6e 64 65 6e 63 79 46 69 |...CDepe|ndencyFi|
|00000400| 6c 65 06 08 14 53 53 42 | 52 0a 61 6c 63 6f 6e 66 |le...SSB|R.alconf|
|00000410| 69 67 2e 68 01 00 0f 00 | 43 44 65 70 65 6e 64 65 |ig.h....|CDepende|
|00000420| 6e 63 79 46 69 6c 65 06 | 08 14 53 53 42 52 0a 6d |ncyFile.|..SSBR.m|
|00000430| 61 74 72 69 78 2e 69 6e | 6c 01 00 0f 00 43 44 65 |atrix.in|l....CDe|
|00000440| 70 65 6e 64 65 6e 63 79 | 46 69 6c 65 06 08 14 53 |pendency|File...S|
|00000450| 53 42 52 08 63 6f 6e 66 | 69 67 2e 68 01 00 0f 00 |SBR.conf|ig.h....|
|00000460| 43 44 65 70 65 6e 64 65 | 6e 63 79 46 69 6c 65 06 |CDepende|ncyFile.|
|00000470| 08 14 53 53 42 52 08 66 | 69 6c 65 2e 69 6e 6c 01 |..SSBR.f|ile.inl.|
|00000480| 00 0f 00 43 44 65 70 65 | 6e 64 65 6e 63 79 46 69 |...CDepe|ndencyFi|
|00000490| 6c 65 06 08 14 53 53 42 | 52 0b 33 64 6d 61 74 68 |le...SSB|R.3dmath|
|000004a0| 73 2e 69 6e 6c 01 00 0f | 00 43 44 65 70 65 6e 64 |s.inl...|.CDepend|
|000004b0| 65 6e 63 79 46 69 6c 65 | 06 08 14 53 53 42 52 06 |encyFile|...SSBR.|
|000004c0| 64 69 67 69 2e 68 01 00 | 0f 00 43 44 65 70 65 6e |digi.h..|..CDepen|
|000004d0| 64 65 6e 63 79 46 69 6c | 65 06 08 14 53 53 42 52 |dencyFil|e...SSBR|
|000004e0| 07 74 69 6d 65 72 2e 68 | 01 00 0f 00 43 44 65 70 |.timer.h|....CDep|
|000004f0| 65 6e 64 65 6e 63 79 46 | 69 6c 65 06 08 14 53 53 |endencyF|ile...SS|
|00000500| 42 52 07 63 6f 6c 6f 72 | 2e 68 01 00 0f 00 43 44 |BR.color|.h....CD|
|00000510| 65 70 65 6e 64 65 6e 63 | 79 46 69 6c 65 06 08 14 |ependenc|yFile...|
|00000520| 53 53 42 52 05 67 66 78 | 2e 68 01 00 0f 00 43 44 |SSBR.gfx|.h....CD|
|00000530| 65 70 65 6e 64 65 6e 63 | 79 46 69 6c 65 06 08 14 |ependenc|yFile...|
|00000540| 53 53 42 52 09 70 74 68 | 72 65 61 64 2e 68 01 00 |SSBR.pth|read.h..|
|00000550| 0f 00 43 44 65 70 65 6e | 64 65 6e 63 79 46 69 6c |..CDepen|dencyFil|
|00000560| 65 06 08 14 53 53 42 52 | 08 73 79 73 74 65 6d 2e |e...SSBR|.system.|
|00000570| 68 01 00 0f 00 43 44 65 | 70 65 6e 64 65 6e 63 79 |h....CDe|pendency|
|00000580| 46 69 6c 65 06 08 14 53 | 53 42 52 09 61 6c 33 38 |File...S|SBR.al38|
|00000590| 36 76 63 2e 68 01 00 0f | 00 43 44 65 70 65 6e 64 |6vc.h...|.CDepend|
|000005a0| 65 6e 63 79 46 69 6c 65 | 06 08 14 53 53 42 52 05 |encyFile|...SSBR.|
|000005b0| 72 6c 65 2e 68 01 00 0f | 00 43 44 65 70 65 6e 64 |rle.h...|.CDepend|
|000005c0| 65 6e 63 79 46 69 6c 65 | 06 08 14 53 53 42 52 06 |encyFile|...SSBR.|
|000005d0| 62 61 73 65 2e 68 01 00 | 0f 00 43 44 65 70 65 6e |base.h..|..CDepen|
|000005e0| 64 65 6e 63 79 46 69 6c | 65 06 08 14 53 53 42 52 |dencyFil|e...SSBR|
|000005f0| 06 66 69 6c 65 2e 68 01 | 00 0f 00 43 44 65 70 65 |.file.h.|...CDepe|
|00000600| 6e 64 65 6e 63 79 46 69 | 6c 65 06 08 14 53 53 42 |ndencyFi|le...SSB|
|00000610| 52 05 66 6c 69 2e 68 01 | 00 0f 00 43 44 65 70 65 |R.fli.h.|...CDepe|
|00000620| 6e 64 65 6e 63 79 46 69 | 6c 65 06 08 14 53 53 42 |ndencyFi|le...SSB|
|00000630| 52 08 6d 61 74 72 69 78 | 2e 68 01 00 0f 00 43 44 |R.matrix|.h....CD|
|00000640| 65 70 65 6e 64 65 6e 63 | 79 46 69 6c 65 06 08 14 |ependenc|yFile...|
|00000650| 53 53 42 52 07 73 6f 75 | 6e 64 2e 68 01 00 0f 00 |SSBR.sou|nd.h....|
|00000660| 43 44 65 70 65 6e 64 65 | 6e 63 79 46 69 6c 65 06 |CDepende|ncyFile.|
|00000670| 08 14 53 53 42 52 07 6d | 6f 75 73 65 2e 68 01 00 |..SSBR.m|ouse.h..|
|00000680| 0f 00 43 44 65 70 65 6e | 64 65 6e 63 79 46 69 6c |..CDepen|dencyFil|
|00000690| 65 06 08 14 53 53 42 52 | 09 33 64 6d 61 74 68 73 |e...SSBR|.3dmaths|
|000006a0| 2e 68 01 00 0f 00 43 44 | 65 70 65 6e 64 65 6e 63 |.h....CD|ependenc|
|000006b0| 79 46 69 6c 65 06 08 14 | 53 53 42 52 09 70 61 6c |yFile...|SSBR.pal|
|000006c0| 65 74 74 65 2e 68 01 00 | 0f 00 43 44 65 70 65 6e |ette.h..|..CDepen|
|000006d0| 64 65 6e 63 79 46 69 6c | 65 06 08 14 53 53 42 52 |dencyFil|e...SSBR|
|000006e0| 0a 66 6d 61 74 68 73 2e | 69 6e 6c 01 00 0f 00 43 |.fmaths.|inl....C|
|000006f0| 44 65 70 65 6e 64 65 6e | 63 79 46 69 6c 65 06 08 |Dependen|cyFile..|
|00000700| 14 53 53 42 52 07 61 73 | 6d 2e 69 6e 6c 01 00 0f |.SSBR.as|m.inl...|
|00000710| 00 43 44 65 70 65 6e 64 | 65 6e 63 79 46 69 6c 65 |.CDepend|encyFile|
|00000720| 06 08 14 53 53 42 52 08 | 64 72 61 77 2e 69 6e 6c |...SSBR.|draw.inl|
|00000730| 01 00 0f 00 43 44 65 70 | 65 6e 64 65 6e 63 79 46 |....CDep|endencyF|
|00000740| 69 6c 65 06 08 14 53 53 | 42 52 07 67 75 69 2e 69 |ile...SS|BR.gui.i|
|00000750| 6e 6c 01 00 0f 00 43 44 | 65 70 65 6e 64 65 6e 63 |nl....CD|ependenc|
|00000760| 79 46 69 6c 65 06 08 14 | 53 53 42 52 09 75 6e 69 |yFile...|SSBR.uni|
|00000770| 63 6f 64 65 2e 68 01 00 | 0f 00 43 44 65 70 65 6e |code.h..|..CDepen|
|00000780| 64 65 6e 63 79 46 69 6c | 65 06 08 14 53 53 42 52 |dencyFil|e...SSBR|
|00000790| 06 74 65 78 74 2e 68 01 | 00 0f 00 43 44 65 70 65 |.text.h.|...CDepe|
|000007a0| 6e 64 65 6e 63 79 46 69 | 6c 65 06 08 14 53 53 42 |ndencyFi|le...SSB|
|000007b0| 52 09 61 6c 6c 65 67 72 | 6f 2e 68 01 00 0f 00 43 |R.allegr|o.h....C|
|000007c0| 44 65 70 65 6e 64 65 6e | 63 79 46 69 6c 65 06 08 |Dependen|cyFile..|
|000007d0| 14 53 53 42 52 0a 6a 6f | 79 73 74 69 63 6b 2e 68 |.SSBR.jo|ystick.h|
|000007e0| 01 00 0f 00 43 44 65 70 | 65 6e 64 65 6e 63 79 46 |....CDep|endencyF|
|000007f0| 69 6c 65 06 08 14 53 53 | 42 52 07 67 66 78 2e 69 |ile...SS|BR.gfx.i|
|00000800| 6e 6c 01 00 0f 00 43 44 | 65 70 65 6e 64 65 6e 63 |nl....CD|ependenc|
|00000810| 79 46 69 6c 65 06 08 14 | 53 53 42 52 06 6d 69 64 |yFile...|SSBR.mid|
|00000820| 69 2e 68 01 00 0f 00 43 | 44 65 70 65 6e 64 65 6e |i.h....C|Dependen|
|00000830| 63 79 46 69 6c 65 06 08 | 14 53 53 42 52 08 66 6d |cyFile..|.SSBR.fm|
|00000840| 61 74 68 73 2e 68 01 00 | 0f 00 43 44 65 70 65 6e |aths.h..|..CDepen|
|00000850| 64 65 6e 63 79 46 69 6c | 65 06 08 14 53 53 42 52 |dencyFil|e...SSBR|
|00000860| 05 08 14 44 4a 57 05 08 | 14 44 4a 57 05 08 14 44 |...DJW..|.DJW...D|
|00000870| 4a 57 3e 63 75 72 66 72 | 61 6d 65 5d 2c 20 0d 0a |JW>curfr|ame], ..|
|00000880| 20 20 20 20 20 20 20 20 | 20 20 20 20 62 61 6c 6c | | ball|
|00000890| 73 5b 31 5d 2d 3e 78 2c | 20 62 61 6c 6c 73 5b 31 |s[1]->x,| balls[1|
|000008a0| 5d 2d 3e 79 29 3b 0d 0a | 0d 0a 20 20 20 20 20 20 |]->y);..|.. |
|000008b0| 20 20 2f 2f 75 6e 6c 6f | 63 6b 20 74 68 65 20 6d | //unlo|ck the m|
|000008c0| 75 74 65 78 0d 0a 20 20 | 20 20 20 20 20 20 69 66 |utex.. | if|
|000008d0| 20 28 70 74 68 72 65 61 | 64 5f 6d 75 74 65 78 5f | (pthrea|d_mutex_|
|000008e0| 75 6e 6c 6f 63 6b 28 26 | 74 68 72 65 61 64 73 61 |unlock(&|threadsa|
|000008f0| 66 65 29 29 0d 0a 20 20 | 20 20 20 20 20 20 20 20 |fe)).. | |
|00000900| 20 20 74 65 78 74 6f 75 | 74 28 62 75 66 66 65 72 | textou|t(buffer|
|00000910| 2c 66 6f 6e 74 2c 22 45 | 52 52 4f 52 3a 20 74 68 |,font,"E|RROR: th|
|00000920| 72 65 61 64 20 6d 75 74 | 65 78 20 75 6e 6c 6f 63 |read mut|ex unloc|
|00000930| 6b 20 65 72 72 6f 72 22 | 2c 30 2c 30 2c 57 48 49 |k error"|,0,0,WHI|
|00000940| 54 45 29 3b 0d 0a 0d 0a | 20 20 20 20 20 20 20 20 |TE);....| |
|00000950| 2f 2f 73 6c 6f 77 20 64 | 6f 77 6e 20 28 74 68 69 |//slow d|own (thi|
|00000960| 73 20 74 68 72 65 61 64 | 20 6f 6e 6c 79 21 29 0d |s thread| only!).|
|00000970| 0a 20 20 20 20 09 72 65 | 73 74 28 35 30 29 3b 0d |. .re|st(50);.|
|00000980| 0a 20 20 20 20 7d 0d 0a | 0d 0a 20 20 20 20 2f 2f |. }..|.. //|
|00000990| 20 74 65 72 6d 69 6e 61 | 74 65 20 74 68 65 20 74 | termina|te the t|
|000009a0| 68 72 65 61 64 0d 0a 20 | 20 20 20 70 74 68 72 65 |hread.. | pthre|
|000009b0| 61 64 5f 65 78 69 74 28 | 4e 55 4c 4c 29 3b 0d 0a |ad_exit(|NULL);..|
|000009c0| 0d 0a 20 20 20 20 72 65 | 74 75 72 6e 20 4e 55 4c |.. re|turn NUL|
|000009d0| 4c 3b 0d 0a 7d 0d 0a 0d | 0a 2f 2f 70 72 6f 67 72 |L;..}...|.//progr|
|000009e0| 61 6d 27 73 20 70 72 69 | 6d 61 72 79 20 74 68 72 |am's pri|mary thr|
|000009f0| 65 61 64 0d 0a 76 6f 69 | 64 20 6d 61 69 6e 28 76 |ead..voi|d main(v|
|00000a00| 6f 69 64 29 0d 0a 7b 0d | 0a 20 20 20 20 69 6e 74 |oid)..{.|. int|
|00000a10| 20 69 64 3b 0d 0a 20 20 | 20 20 70 74 68 72 65 61 | id;.. | pthrea|
|00000a20| 64 5f 74 20 70 74 68 72 | 65 61 64 31 3b 0d 0a 20 |d_t pthr|ead1;.. |
|00000a30| 20 20 20 70 74 68 72 65 | 61 64 5f 74 20 70 74 68 | pthre|ad_t pth|
|00000a40| 72 65 61 64 32 3b 0d 0a | 20 20 20 20 69 6e 74 20 |read2;..| int |
|00000a50| 74 68 72 65 61 64 69 64 | 31 20 3d 20 31 3b 0d 0a |threadid|1 = 1;..|
|00000a60| 20 20 20 20 69 6e 74 20 | 74 68 72 65 61 64 69 64 | int |threadid|
|00000a70| 32 20 3d 20 32 3b 0d 0a | 0d 0a 20 20 20 20 2f 2f |2 = 2;..|.. //|
|00000a80| 69 6e 69 74 69 61 6c 69 | 7a 65 0d 0a 20 20 20 20 |initiali|ze.. |
|00000a90| 61 6c 6c 65 67 72 6f 5f | 69 6e 69 74 28 29 3b 0d |allegro_|init();.|
|00000aa0| 0a 20 20 20 20 73 65 74 | 5f 63 6f 6c 6f 72 5f 64 |. set|_color_d|
|00000ab0| 65 70 74 68 28 31 36 29 | 3b 0d 0a 20 20 20 20 73 |epth(16)|;.. s|
|00000ac0| 65 74 5f 67 66 78 5f 6d | 6f 64 65 28 4d 4f 44 45 |et_gfx_m|ode(MODE|
|00000ad0| 2c 20 57 49 44 54 48 2c | 20 48 45 49 47 48 54 2c |, WIDTH,| HEIGHT,|
|00000ae0| 20 30 2c 20 30 29 3b 0d | 0a 20 20 20 20 73 72 61 | 0, 0);.|. sra|
|00000af0| 6e 64 28 74 69 6d 65 28 | 4e 55 4c 4c 29 29 3b 0d |nd(time(|NULL));.|
|00000b00| 0a 20 20 20 20 74 65 78 | 74 5f 6d 6f 64 65 28 2d |. tex|t_mode(-|
|00000b10| 31 29 3b 0d 0a 20 20 20 | 20 69 6e 73 74 61 6c 6c |1);.. | install|
|00000b20| 5f 6b 65 79 62 6f 61 72 | 64 28 29 3b 0d 0a 20 20 |_keyboar|d();.. |
|00000b30| 20 20 69 6e 73 74 61 6c | 6c 5f 74 69 6d 65 72 28 | instal|l_timer(|
|00000b40| 29 3b 0d 0a 0d 0a 20 20 | 20 20 2f 2f 63 72 65 61 |);.... | //crea|
|00000b50| 74 65 20 64 6f 75 62 6c | 65 20 62 75 66 66 65 72 |te doubl|e buffer|
|00000b60| 0d 0a 20 20 20 20 62 75 | 66 66 65 72 20 3d 20 63 |.. bu|ffer = c|
|00000b70| 72 65 61 74 65 5f 62 69 | 74 6d 61 70 28 53 43 52 |reate_bi|tmap(SCR|
|00000b80| 45 45 4e 5f 57 2c 53 43 | 52 45 45 4e 5f 48 29 3b |EEN_W,SC|REEN_H);|
|00000b90| 0d 0a 0d 0a 20 20 20 20 | 2f 2f 64 69 73 70 6c 61 |.... |//displa|
|00000ba0| 79 20 74 69 74 6c 65 0d | 0a 20 20 20 20 74 65 78 |y title.|. tex|
|00000bb0| 74 6f 75 74 28 62 75 66 | 66 65 72 2c 20 66 6f 6e |tout(buf|fer, fon|
|00000bc0| 74 2c 20 22 4d 75 6c 74 | 69 54 68 72 65 61 64 20 |t, "Mult|iThread |
|00000bd0| 50 72 6f 67 72 61 6d 20 | 28 45 53 43 20 74 6f 20 |Program |(ESC to |
|00000be0| 71 75 69 74 29 22 2c 20 | 0d 0a 20 20 20 20 20 20 |quit)", |.. |
|00000bf0| 20 20 30 2c 20 30 2c 20 | 57 48 49 54 45 29 3b 0d | 0, 0, |WHITE);.|
|00000c00| 0a 0d 0a 20 20 20 20 2f | 2f 6c 6f 61 64 20 62 61 |... /|/load ba|
|00000c10| 6c 6c 20 73 70 72 69 74 | 65 20 0d 0a 20 20 20 20 |ll sprit|e .. |
|00000c20| 6c 6f 61 64 73 70 72 69 | 74 65 73 28 29 3b 0d 0a |loadspri|tes();..|
|00000c30| 0d 0a 20 20 20 20 2f 2f | 63 72 65 61 74 65 20 74 |.. //|create t|
|00000c40| 68 65 20 74 68 72 65 61 | 64 20 66 6f 72 20 73 70 |he threa|d for sp|
|00000c50| 72 69 74 65 20 30 0d 0a | 20 20 20 20 69 64 20 3d |rite 0..| id =|
|00000c60| 20 70 74 68 72 65 61 64 | 5f 63 72 65 61 74 65 28 | pthread|_create(|
|00000c70| 26 70 74 68 72 65 61 64 | 31 2c 20 4e 55 4c 4c 2c |&pthread|1, NULL,|
|00000c80| 20 74 68 72 65 61 64 31 | 2c 20 28 76 6f 69 64 2a | thread1|, (void*|
|00000c90| 29 26 74 68 72 65 61 64 | 69 64 31 29 3b 0d 0a 0d |)&thread|id1);...|
|00000ca0| 0a 20 20 20 20 2f 2f 63 | 72 65 61 74 65 20 74 68 |. //c|reate th|
|00000cb0| 65 20 74 68 72 65 61 64 | 20 66 6f 72 20 73 70 72 |e thread| for spr|
|00000cc0| 69 74 65 20 31 0d 0a 20 | 20 20 20 69 64 20 3d 20 |ite 1.. | id = |
|00000cd0| 70 74 68 72 65 61 64 5f | 63 72 65 61 74 65 28 26 |pthread_|create(&|
|00000ce0| 70 74 68 72 65 61 64 32 | 2c 20 4e 55 4c 4c 2c 20 |pthread2|, NULL, |
|00000cf0| 74 68 72 65 61 64 32 2c | 20 28 76 6f 69 64 2a 29 |thread2,| (void*)|
|00000d00| 26 74 68 72 65 61 64 69 | 64 32 29 3b 0d 0a 0d 0a |&threadi|d2);....|
|00000d10| 20 20 20 20 2f 2f 6d 61 | 69 6e 20 6c 6f 6f 70 0d | //ma|in loop.|
|00000d20| 0a 20 20 20 20 77 68 69 | 6c 65 20 28 21 6b 65 79 |. whi|le (!key|
|00000d30| 5b 4b 45 59 5f 45 53 43 | 5d 29 0d 0a 20 20 20 20 |[KEY_ESC|]).. |
|00000d40| 7b 0d 0a 20 20 20 20 20 | 20 20 20 2f 2f 6c 6f 63 |{.. | //loc|
|00000d50| 6b 20 74 68 65 20 6d 75 | 74 65 78 20 74 6f 20 70 |k the mu|tex to p|
|00000d60| 72 6f 74 65 63 74 20 64 | 6f 75 62 6c 65 20 62 75 |rotect d|ouble bu|
|00000d70| 66 66 65 72 0d 0a 20 20 | 20 20 20 20 20 20 70 74 |ffer.. | pt|
|00000d80| 68 72 65 61 64 5f 6d 75 | 74 65 78 5f 6c 6f 63 6b |hread_mu|tex_lock|
|00000d90| 28 26 74 68 72 65 61 64 | 73 61 66 65 29 3b 0d 0a |(&thread|safe);..|
|00000da0| 0d 0a 20 20 20 20 20 20 | 20 20 2f 2f 75 70 64 61 |.. | //upda|
|00000db0| 74 65 20 74 68 65 20 73 | 63 72 65 65 6e 0d 0a 20 |te the s|creen.. |
|00000dc0| 20 20 20 20 20 20 20 61 | 63 71 75 69 72 65 5f 73 | a|cquire_s|
|00000dd0| 63 72 65 65 6e 28 29 3b | 0d 0a 20 20 20 20 20 20 |creen();|.. |
|00000de0| 20 20 62 6c 69 74 28 62 | 75 66 66 65 72 2c 73 63 | blit(b|uffer,sc|
|00000df0| 72 65 65 6e 2c 30 2c 30 | 2c 30 2c 30 2c 53 43 52 |reen,0,0|,0,0,SCR|
|00000e00| 45 45 4e 5f 57 2d 31 2c | 53 43 52 45 45 4e 5f 48 |EEN_W-1,|SCREEN_H|
|00000e10| 2d 31 29 3b 0d 0a 20 20 | 20 20 20 20 20 20 72 65 |-1);.. | re|
|00000e20| 6c 65 61 73 65 5f 73 63 | 72 65 65 6e 28 29 3b 0d |lease_sc|reen();.|
|00000e30| 0a 0d 0a 20 20 20 20 20 | 20 20 20 2f 2f 75 6e 6c |... | //unl|
|00000e40| 6f 63 6b 20 74 68 65 20 | 6d 75 74 65 78 0d 0a 20 |ock the |mutex.. |
|00000e50| 20 20 20 20 20 20 20 70 | 74 68 72 65 61 64 5f 6d | p|thread_m|
|00000e60| 75 74 65 78 5f 75 6e 6c | 6f 63 6b 28 26 74 68 72 |utex_unl|ock(&thr|
|00000e70| 65 61 64 73 61 66 65 29 | 3b 0d 0a 0d 0a 20 20 20 |eadsafe)|;.... |
|00000e80| 20 20 20 20 20 72 65 73 | 74 28 31 29 3b 0d 0a 20 | res|t(1);.. |
|00000e90| 20 20 20 7d 0d 0a 0d 0a | 20 20 20 20 2f 2f 74 65 | }....| //te|
|00000ea0| 6c 6c 20 74 68 72 65 61 | 64 73 20 69 74 27 73 20 |ll threa|ds it's |
|00000eb0| 74 69 6d 65 20 74 6f 20 | 71 75 69 74 0d 0a 20 20 |time to |quit.. |
|00000ec0| 20 20 64 6f 6e 65 2b 2b | 3b 0d 0a 20 20 20 20 72 | done++|;.. r|
|00000ed0| 65 73 74 28 31 30 30 29 | 3b 0d 0a 0d 0a 20 20 20 |est(100)|;.... |
|00000ee0| 20 2f 2f 6b 69 6c 6c 20 | 74 68 65 20 6d 75 74 65 | //kill |the mute|
|00000ef0| 78 20 28 74 68 72 65 61 | 64 20 70 72 6f 74 65 63 |x (threa|d protec|
|00000f00| 74 69 6f 6e 29 0d 0a 20 | 20 20 20 70 74 68 72 65 |tion).. | pthre|
|00000f10| 61 64 5f 6d 75 74 65 78 | 5f 64 65 73 74 72 6f 79 |ad_mutex|_destroy|
|00000f20| 28 26 74 68 72 65 61 64 | 73 61 66 65 29 3b 0d 0a |(&thread|safe);..|
|00000f30| 20 20 20 20 0d 0a 20 20 | 20 20 2f 2f 72 65 6d 6f | .. | //remo|
|00000f40| 76 65 20 6f 62 6a 65 63 | 74 73 20 66 72 6f 6d 20 |ve objec|ts from |
|00000f50| 6d 65 6d 6f 72 79 0d 0a | 20 20 20 20 64 65 73 74 |memory..| dest|
|00000f60| 72 6f 79 5f 62 69 74 6d | 61 70 28 62 75 66 66 65 |roy_bitm|ap(buffe|
|00000f70| 72 29 3b 0d 0a 0d 0a 20 | 20 20 20 2f 2f 64 65 6c |r);.... | //del|
|00000f80| 65 74 65 20 73 70 72 69 | 74 65 73 0d 0a 20 20 20 |ete spri|tes.. |
|00000f90| 20 66 6f 72 20 28 6e 3d | 30 3b 20 6e 3c 33 32 3b | for (n=|0; n<32;|
|00000fa0| 20 6e 2b 2b 29 0d 0a 20 | 20 20 20 20 20 20 20 64 | n++).. | d|
|00000fb0| 65 73 74 72 6f 79 5f 62 | 69 74 6d 61 70 28 62 61 |estroy_b|itmap(ba|
|00000fc0| 6c 6c 69 6d 67 5b 6e 5d | 29 3b 0d 0a 0d 0a 20 20 |llimg[n]|);.... |
|00000fd0| 20 20 72 65 74 75 72 6e | 3b 0d 0a 7d 0d 0a 0d 0a | return|;..}....|
|00000fe0| 45 4e 44 5f 4f 46 5f 4d | 41 49 4e 28 29 3b 0d 0a |END_OF_M|AIN();..|
|00000ff0| 0d 0a 0d 0a 0d 0a 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001000| 2b 20 31 3b 0d 0a 20 20 | 20 20 20 20 20 20 62 61 |+ 1;.. | ba|
|00001010| 6c 6c 73 5b 6e 5d 2d 3e | 63 75 72 66 72 61 6d 65 |lls[n]->|curframe|
|00001020| 20 3d 20 72 61 6e 64 28 | 29 20 25 20 33 32 3b 0d | = rand(|) % 32;.|
|00001030| 0a 20 20 20 20 20 20 20 | 20 62 61 6c 6c 73 5b 6e |. | balls[n|
|00001040| 5d 2d 3e 6d 61 78 66 72 | 61 6d 65 20 3d 20 33 31 |]->maxfr|ame = 31|
|00001050| 3b 0d 0a 20 20 20 20 20 | 20 20 20 62 61 6c 6c 73 |;.. | balls|
|00001060| 5b 6e 5d 2d 3e 66 72 61 | 6d 65 63 6f 75 6e 74 20 |[n]->fra|mecount |
|00001070| 3d 20 30 3b 0d 0a 20 20 | 20 20 20 20 20 20 62 61 |= 0;.. | ba|
|00001080| 6c 6c 73 5b 6e 5d 2d 3e | 66 72 61 6d 65 64 65 6c |lls[n]->|framedel|
|00001090| 61 79 20 3d 20 30 3b 0d | 0a 20 20 20 20 20 20 20 |ay = 0;.|. |
|000010a0| 20 62 61 6c 6c 73 5b 6e | 5d 2d 3e 61 6e 69 6d 64 | balls[n|]->animd|
|000010b0| 69 72 20 3d 20 31 3b 0d | 0a 20 20 20 20 7d 0d 0a |ir = 1;.|. }..|
|000010c0| 0d 0a 20 20 20 20 2f 2f | 63 72 65 61 74 65 20 74 |.. //|create t|
|000010d0| 68 65 20 6e 65 77 20 74 | 68 72 65 61 64 0d 0a 20 |he new t|hread.. |
|000010e0| 20 20 20 74 68 72 65 61 | 64 5f 69 64 20 3d 20 70 | threa|d_id = p|
|000010f0| 74 68 72 65 61 64 5f 63 | 72 65 61 74 65 28 26 70 |thread_c|reate(&p|
|00001100| 5f 74 68 72 65 61 64 2c | 20 4e 55 4c 4c 2c 20 74 |_thread,| NULL, t|
|00001110| 68 72 65 61 64 31 2c 20 | 28 76 6f 69 64 2a 29 26 |hread1, |(void*)&|
|00001120| 61 29 3b 0d 0a 0d 0a 0d | 0a 20 20 20 20 2f 2f 67 |a);.....|. //g|
|00001130| 61 6d 65 20 6c 6f 6f 70 | 0d 0a 20 20 20 20 77 68 |ame loop|.. wh|
|00001140| 69 6c 65 20 28 21 6b 65 | 79 5b 4b 45 59 5f 45 53 |ile (!ke|y[KEY_ES|
|00001150| 43 5d 29 0d 0a 20 20 20 | 20 7b 0d 0a 20 20 20 20 |C]).. | {.. |
|00001160| 20 20 20 20 2f 2f 65 72 | 61 73 65 20 74 68 65 20 | //er|ase the |
|00001170| 73 70 72 69 74 65 73 0d | 0a 20 20 20 20 20 20 20 |sprites.|. |
|00001180| 20 66 6f 72 20 28 6e 3d | 30 3b 20 6e 3c 4e 55 4d | for (n=|0; n<NUM|
|00001190| 3b 20 6e 2b 2b 29 0d 0a | 20 20 20 20 20 20 20 20 |; n++)..| |
|000011a0| 20 20 20 20 65 72 61 73 | 65 73 70 72 69 74 65 28 | eras|esprite(|
|000011b0| 62 75 66 66 65 72 2c 20 | 62 61 6c 6c 73 5b 6e 5d |buffer, |balls[n]|
|000011c0| 29 3b 0d 0a 0d 0a 20 20 | 20 20 20 20 20 20 2f 2f |);.... | //|
|000011d0| 75 70 64 61 74 65 20 61 | 6e 64 20 64 72 61 77 20 |update a|nd draw |
|000011e0| 74 68 65 20 73 70 72 69 | 74 65 73 0d 0a 20 20 20 |the spri|tes.. |
|000011f0| 20 20 20 20 20 66 6f 72 | 20 28 6e 3d 30 3b 20 6e | for| (n=0; n|
|00001200| 3c 4e 55 4d 3b 20 6e 2b | 2b 29 0d 0a 20 20 20 20 |<NUM; n+|+).. |
|00001210| 20 20 20 20 7b 0d 0a 20 | 20 20 20 20 20 20 20 20 | {.. | |
|00001220| 20 20 20 75 70 64 61 74 | 65 73 70 72 69 74 65 28 | updat|esprite(|
|00001230| 62 61 6c 6c 73 5b 6e 5d | 29 3b 0d 0a 20 20 20 20 |balls[n]|);.. |
|00001240| 20 20 20 20 20 20 20 20 | 62 6f 75 6e 63 65 73 70 | |bouncesp|
|00001250| 72 69 74 65 28 62 61 6c | 6c 73 5b 6e 5d 29 3b 0d |rite(bal|ls[n]);.|
|00001260| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 64 72 61 |. | dra|
|00001270| 77 5f 73 70 72 69 74 65 | 28 62 75 66 66 65 72 2c |w_sprite|(buffer,|
|00001280| 20 62 61 6c 6c 69 6d 67 | 5b 62 61 6c 6c 73 5b 6e | ballimg|[balls[n|
|00001290| 5d 2d 3e 63 75 72 66 72 | 61 6d 65 5d 2c 20 0d 0a |]->curfr|ame], ..|
|000012a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000012b0| 62 61 6c 6c 73 5b 6e 5d | 2d 3e 78 2c 20 62 61 6c |balls[n]|->x, bal|
|000012c0| 6c 73 5b 6e 5d 2d 3e 79 | 29 3b 0d 0a 20 20 20 20 |ls[n]->y|);.. |
|000012d0| 20 20 20 20 7d 0d 0a 0d | 0a 20 20 20 20 20 20 20 | }...|. |
|000012e0| 20 2f 2f 75 70 64 61 74 | 65 20 74 68 65 20 73 63 | //updat|e the sc|
|000012f0| 72 65 65 6e 0d 0a 20 20 | 20 20 20 20 20 20 61 63 |reen.. | ac|
|00001300| 71 75 69 72 65 5f 73 63 | 72 65 65 6e 28 29 3b 0d |quire_sc|reen();.|
|00001310| 0a 20 20 20 20 20 20 20 | 20 62 6c 69 74 28 62 75 |. | blit(bu|
|00001320| 66 66 65 72 2c 73 63 72 | 65 65 6e 2c 30 2c 30 2c |ffer,scr|een,0,0,|
|00001330| 30 2c 30 2c 53 43 52 45 | 45 4e 5f 57 2d 31 2c 53 |0,0,SCRE|EN_W-1,S|
|00001340| 43 52 45 45 4e 5f 48 2d | 31 29 3b 0d 0a 20 20 20 |CREEN_H-|1);.. |
|00001350| 20 20 20 20 20 72 65 6c | 65 61 73 65 5f 73 63 72 | rel|ease_scr|
|00001360| 65 65 6e 28 29 3b 0d 0a | 0d 0a 20 20 20 20 20 20 |een();..|.. |
|00001370| 20 20 2f 2f 73 6c 6f 77 | 20 74 68 65 20 67 61 6d | //slow| the gam|
|00001380| 65 20 64 6f 77 6e 0d 0a | 20 20 20 20 20 20 20 20 |e down..| |
|00001390| 72 65 73 74 28 38 29 3b | 0d 0a 20 20 20 20 7d 0d |rest(8);|.. }.|
|000013a0| 0a 0d 0a 20 20 20 20 2f | 2f 74 65 6c 6c 20 74 68 |... /|/tell th|
|000013b0| 72 65 61 64 20 69 74 27 | 73 20 74 69 6d 65 20 74 |read it'|s time t|
|000013c0| 6f 20 71 75 69 74 0d 0a | 20 20 20 20 64 6f 6e 65 |o quit..| done|
|000013d0| 2b 2b 3b 0d 0a 20 20 20 | 20 72 65 73 74 28 31 30 |++;.. | rest(10|
|000013e0| 30 30 29 3b 0d 0a 0d 0a | 20 20 20 20 2f 2f 6b 69 |00);....| //ki|
|000013f0| 6c 6c 20 74 68 65 20 6d | 75 74 65 78 20 28 74 68 |ll the m|utex (th|
+--------+-------------------------+-------------------------+--------+--------+