[00:01:36] --> Kirben has joined #exult
[00:01:43] <Dominus> Kirben!
[00:01:54] <Dominus> hi
[00:02:10] <Kirben> Hi
[00:02:29] <Dominus> I wnated to speak to you
[00:03:07] <Dominus> could you include the updated defaultkeys.txt in the Win32 snapshot?
[00:03:31] <Dominus> I mentioned it in the FAQ that people are able to custom edit it
[00:03:50] <Dominus> and so I think it should be updated as well
[00:04:06] <Kirben> ok I must have missed that update
[00:04:21] <Dominus> great!
[00:04:24] <Dominus> .-)
[00:04:51] <Dominus> did I ever thank you for your daily snapshots?
[00:04:58] <Dominus> THANK YOU!!!!
[00:05:15] <Fingolfin> Dominus: I know why the problem appeary
[00:05:19] <Fingolfin> appears even
[00:05:24] <Dominus> hmhm
[00:05:27] <Kirben> thanks
[00:05:28] <Fingolfin> it's not in the FAQ, it is caused by the counter
[00:05:48] <Dominus> *evil sourceforge counter
[00:05:55] <Fingolfin> I'll fix it ASAP
[00:06:02] <Dominus> but that error is not in the other Exult pages
[00:06:11] <Fingolfin> of course not
[00:06:16] <Fingolfin> this is the only XHTML page!
[00:06:50] <Dominus> I not know what you about speaking - I listen and nod head!
[00:07:00] <Dominus> :-)
[00:07:27] <Dominus> actually, I knew that, but didnīt think of it
[00:08:17] <Fingolfin> fixed
[00:08:52] <Dominus> :-)
[00:10:31] <Dominus> okey dockey, Iīm going to bed now!
[00:10:56] <Dominus> cu
[00:11:00] <-- Dominus has left #exult
[00:20:58] <-- Fingolfin has left IRC (Ping timeout for Fingolfin[pD9504F82.dip.t-dialin.net])
[01:08:46] --> co has joined #exult
[01:10:56] <-- co has left #exult
[04:39:22] <-- Kirben has left IRC (System Meltdown)
[08:48:10] --> Kirben has joined #exult
[10:50:33] --> Flyn_Oakplume has joined #exult
[10:50:39] <Flyn_Oakplume> heya
[10:50:42] <Kirben> Hi
[10:51:05] <Flyn_Oakplume> Hows it going?
[10:51:35] <Kirben> going ok
[11:08:23] <Kirben> interesting, exult almost compile nder cygwin
[11:53:58] <-- Kirben has left IRC (Read error to Kirben[co3007967-a.brasd1.vic.optushome.com.au]: Connection reset by peer)
[12:04:06] <-- Flyn_Oakplume has left IRC (Ping timeout for Flyn_Oakplume[diup-201-55.inter.net.il])
[13:10:00] --> Fingolfin has joined #exult
[13:27:39] <-- Fingolfin has left IRC (42)
[16:43:01] --> Flyn_Oakplume has joined #exult
[16:43:05] <-- Flyn_Oakplume has left #exult
[16:43:06] --> Flyn_Oakplume has joined #exult
[17:04:52] <-- Flyn_Oakplume has left IRC (Bah is NOT a sheep noise!)
[17:30:29] --> wjp has joined #exult
[17:35:13] --> Fingolfin has joined #exult
[17:35:28] <wjp> hi
[17:35:54] <Fingolfin> lo
[17:41:24] <Fingolfin> grmbl
[17:41:36] <Fingolfin> seems SF's file downloads are broken once more :(
[17:41:48] <Fingolfin> so far #sourceforge is dead silent, seems nobody of them is listening
[18:13:13] <-- exultbot has left IRC (signing off...)
[18:43:37] --> exultbot has joined #exult
[18:44:21] --> Fingolfin has joined #exult
[18:48:05] <wjp> wb
[19:00:37] --> Flyn_Oakplume has joined #exult
[19:00:47] <Flyn_Oakplume> Heya!
[19:01:06] <wjp> hi
[19:01:16] <Flyn_Oakplume> Hows it going?
[19:01:30] <wjp> not that great :-( (headache)
[19:01:37] <wjp> I'll live though ;-)
[19:02:52] <Flyn_Oakplume> heh
[19:02:54] <Flyn_Oakplume> fever?
[19:03:02] <wjp> no, not as far as I know
[19:03:15] <Flyn_Oakplume> Ah well
[19:03:33] * Flyn_Oakplume starts chanting "An Nox" and points at Willem.
[19:03:42] <wjp> thanks :-)
[19:03:46] <Flyn_Oakplume> heh
[19:03:52] <wjp> could you try Vas In Mani?
[19:03:52] <Flyn_Oakplume> Say
[19:04:03] <Flyn_Oakplume> Thats In Vas Mani ;-)
[19:04:16] <wjp> if you say so :-)
[19:04:55] * Flyn_Oakplume starts chanting "Vas Mani" and points at Willem.
[19:05:01] <Flyn_Oakplume> Thats restoration ;-)
[19:05:03] <Flyn_Oakplume> Anyway
[19:05:30] <Flyn_Oakplume> I finished the firedoom staff a couple of hours ago
[19:05:40] <wjp> cool
[19:05:43] <Flyn_Oakplume> I used the existing SI one and just changed the colors
[19:05:47] <Flyn_Oakplume> And I was wondering
[19:05:54] <Flyn_Oakplume> If I should little flames or something?
[19:06:24] <wjp> ?
[19:06:38] <Flyn_Oakplume> On the staff
[19:06:40] <Flyn_Oakplume> I mean
[19:06:53] <Flyn_Oakplume> To make it look more different from the SI one
[19:07:19] <wjp> whatever you think looks best
[19:07:28] <wjp> It doesn't necessarily have to look different from the SI one
[19:07:36] <Flyn_Oakplume> Ah
[19:07:38] <Flyn_Oakplume> ok
[19:07:39] <wjp> as long as it looks good
[19:07:42] <Flyn_Oakplume> BTW
[19:07:54] <Flyn_Oakplume> I found one more missing paperdoll graphic
[19:08:12] <Flyn_Oakplume> Avatar Costume
[19:08:17] <wjp> which one?
[19:08:27] <wjp> hehe :-)
[19:08:32] * Flyn_Oakplume grins
[19:08:37] <wjp> must've missed that one...
[19:08:43] <Flyn_Oakplume> Also
[19:08:51] <Flyn_Oakplume> If you place a bag in your hand
[19:09:06] <Flyn_Oakplume> It also opens an empty scroll graphic next to it
[19:09:17] <wjp> really? that's weird
[19:09:33] <Fingolfin> back
[19:09:39] <Flyn_Oakplume> Heya
[19:09:45] <Fingolfin> new graphics???? I wanna have new graphics! ;)
[19:09:54] <Fingolfin> gorgets look nice ;)
[19:10:03] <wjp> Fingolfin: good, you can insert them into exult then ;-)
[19:10:18] <Flyn_Oakplume> Thanks
[19:10:18] <Fingolfin> wjp: OK, I'll try ;)
[19:10:28] <Fingolfin> hm
[19:10:32] <Flyn_Oakplume> Who should I send the firedoom staff?
[19:10:36] <Fingolfin> I think we should maybe move the graphics...
[19:10:43] <wjp> without the gimp plugin?
[19:10:44] <Fingolfin> maybe make a subfolder "graphics" to the "data" folder?
[19:10:51] <Fingolfin> wjp: haha ;)
[19:11:00] <wjp> Flyn_Oakplume: I'll take it
[19:11:05] <Flyn_Oakplume> ok
[19:11:08] <Flyn_Oakplume> uno momento
[19:11:10] <Fingolfin> wjp: I can do wizardry ;) I will port GIMP to MacOS, and then I have no probs ;)
[19:11:12] <wjp> Fingolfin: yes, and they should also be removed from exult.flx
[19:11:22] <Fingolfin> yup
[19:11:41] <Fingolfin> hey, I haven't looked at the hoe and the magic boomerang yet!
[19:11:45] * Fingolfin launches exult
[19:12:35] <wjp> <feigned shock>you haven't?!?</shock>
[19:13:18] <wjp> hey... the avatar costume isn't in paperdoll_gump_info.cc
[19:15:07] <Flyn_Oakplume> what does that mean?
[19:15:28] <wjp> that it wasn't my fault it was missing from the list I sent ;-)
[19:15:39] <Flyn_Oakplume> heh
[19:15:51] <Flyn_Oakplume> BTW
[19:16:05] <Flyn_Oakplume> Exult keeps crashing upon exit and randomly while playing
[19:16:13] <wjp> that's the file where all the paperdoll info is stored. Items don't have art are marked there too.
[19:16:31] <wjp> Flyn_Oakplume: are you using a very recent snapshot?
[19:16:36] <Fingolfin> wjp: that hoe of destruciton sure looks awesome ;)
[19:16:37] <Flyn_Oakplume> Well
[19:16:44] <Flyn_Oakplume> It has the old gorget in it
[19:16:47] <Fingolfin> but maybe it could need some "sparkling" effect added? ;)
[19:16:57] <wjp> Fingolfin: Hoe is Tristan's, IIRC
[19:17:19] <wjp> I did the great dagger, magic boomerang and caddellite helmet
[19:17:21] <Fingolfin> well, and?
[19:17:27] <Fingolfin> caddelite I saw ;)
[19:17:27] <Flyn_Oakplume> hmm
[19:17:34] <Flyn_Oakplume> I wanna check the hoe out
[19:17:37] <Flyn_Oakplume> one moment
[19:17:58] <wjp> you get crashes on exit in a snapshot from a few days ago? uh oh... Jeff is not going to like this :-)
[19:18:45] <Flyn_Oakplume> heh
[19:18:58] <Flyn_Oakplume> The Hoe looks nice
[19:19:06] <wjp> can you try disabling audio? (set config/audio/enabled to 'no' in exult.cfg)
[19:19:14] <Flyn_Oakplume> It already is ;-)
[19:19:22] <wjp> and it's still crashing?
[19:19:28] <Flyn_Oakplume> Can't stand the ringing noise with the doors
[19:19:29] <Flyn_Oakplume> yup
[19:19:42] <Flyn_Oakplume> Well
[19:19:49] <Flyn_Oakplume> I think I need to post some bugs
[19:19:51] <Flyn_Oakplume> one moment
[19:20:49] <wjp> do stderr.txt/stdout.txt show anything?
[19:23:14] <Flyn_Oakplume> uh
[19:23:19] <Flyn_Oakplume> want to get the file?
[19:24:59] <wjp> did you really disable all audio or just the sfx, music and speech?
[19:25:32] <Flyn_Oakplume> What else is there?
[19:26:01] <wjp> hmmm... I am _really_ lagged
[19:26:16] <Flyn_Oakplume> heh
[19:26:41] <Flyn_Oakplume> heh
[19:26:47] <wjp> --- Ping reply from Flyn_Oakplume : 79.81 second(s)
[19:26:49] <Flyn_Oakplume> [wjp PING reply]: 10secs
[19:26:54] <Flyn_Oakplume> heheh
[19:27:02] <wjp> --- Ping reply from Flyn_Oakplume : 1.11 second(s)... better now
[19:27:14] <Flyn_Oakplume> Yup
[19:27:34] <wjp> ok, questions and answers are a bit out of synch I'm afraid
[19:28:07] <wjp> did you really disable all audio or just the sfx, music and speech?
[19:28:46] <wjp> oh, wait, "what else is there?" is probably the answer to that, right?
[19:29:16] * Flyn_Oakplume nods
[19:29:33] <wjp> the audio system itself still gets used when you just disable the midi/sfx/speech
[19:29:53] <wjp> but you can disable the entire audio system by putting "no" in config/audio/enabled
[19:29:53] <Flyn_Oakplume> So I need to do it in the midi file?
[19:29:58] <Flyn_Oakplume> cfg file i mean
[19:30:01] <wjp> yeah
[19:33:00] <Flyn_Oakplume> btw
[19:33:05] <Flyn_Oakplume> Is the staff ok?
[19:33:21] <wjp> oh, haven't looked yet...
[19:34:15] <wjp> hmm.. the shouldered version looks a bit 'short' :-)
[19:34:47] <wjp> otherwise they look good. (haven't looked at the palette-rotating version yet, though)
[19:34:57] <Flyn_Oakplume> I'll fix it in a sec
[19:35:09] <wjp> did I send the firedoom shapes from SI?
[19:36:17] <wjp> I think the shouldered one should be full-length, since the rest of the body will be drawn on top of it
[19:37:17] <Flyn_Oakplume> Ah
[19:37:23] <Flyn_Oakplume> I have the full one somewhere...
[19:38:02] <Flyn_Oakplume> there
[19:38:17] <wjp> thanks!
[19:38:25] <Flyn_Oakplume> np ;-)
[19:38:53] <wjp> I'll add them sometime this week or maybe next week... (I'm a bit behind with inserting art)
[19:40:43] <Flyn_Oakplume> OK
[19:43:47] <Flyn_Oakplume> What should I do next?
[19:44:41] <wjp> your choice :-)
[19:44:54] <wjp> didn't you say something about a fellowship staff yesterday?
[19:45:10] <Flyn_Oakplume> heh
[19:45:14] <Flyn_Oakplume> I started
[19:45:14] <wjp> or was that firedoom? hmm... foggy memory
[19:45:21] <Flyn_Oakplume> But its a bit hard
[19:45:26] <Flyn_Oakplume> I'll do it sometime
[19:45:52] <Flyn_Oakplume> Just created a sourceforge account
[19:46:32] <wjp> cool
[19:47:05] * Flyn_Oakplume starts submiting 3 bugs per second.
[19:47:29] <wjp> you don't need a SF account for that, btw... (but it does let us know who posted the bug)
[19:48:33] <Flyn_Oakplume> ah
[19:48:35] <Flyn_Oakplume> heh
[19:48:36] <Flyn_Oakplume> ok
[19:52:59] * Flyn_Oakplume is bored
[19:54:23] <Fingolfin> its good if you have an SF account, though
[19:54:49] <Fingolfin> then we see who submitted the bug, and know who is annoying us ;)
[19:54:54] <Flyn_Oakplume> heh
[19:54:59] <wjp> <evil grin>
[19:55:28] <wjp> ;-)
[19:56:38] * Flyn_Oakplume begins chanting "Kal Vas Flam" and points at Fingolfin.
[19:57:04] <Fingolfin> bah
[19:57:07] <wjp> pssst... Fingolfin: An Ex...
[19:57:21] <wjp> or maybe An Ex Por, or An Por
[19:57:32] * Fingolfin readies the sword of truth and prepares to deflect Flyn_Oakplume's spell
[19:57:33] <Flyn_Oakplume> heh
[19:57:43] <wjp> that's another to do it ;-)
[19:58:01] * Flyn_Oakplume reveals his true identity as the Big Bad Red Muppet
[19:58:03] <wjp> another way, even
[19:58:06] <Flyn_Oakplume> Muhahaha!
[19:58:24] * wjp hovers his mouse over the 'kick' button
[19:58:45] * Flyn_Oakplume polymorphs into a harmless old lady.
[19:59:03] <wjp> hmm... what's the word for dispel illusion?
[19:59:08] <wjp> An Quas!
[19:59:12] <Fingolfin> mostly harmless I guess?
[19:59:28] <Flyn_Oakplume> heh
[19:59:48] * Flyn_Oakplume is revealed as a miniature Giant Space Hamster.
[19:59:54] <Flyn_Oakplume> squeak!
[20:00:04] --- wjp is now known as wjp|tv
[20:00:05] <wjp|tv> bbl
[20:00:08] <Flyn_Oakplume> heh
[20:00:09] <Flyn_Oakplume> ok
[20:10:30] --- Flyn_Oakplume is now known as Flyn_UO
[20:12:24] --- Fingolfin is now known as Fingolfin|Simpsons
[20:34:46] <-- Flyn_UO has left IRC (Ping timeout for Flyn_UO[diup-199-176.inter.net.il])
[20:43:27] <-- Fingolfin|Simpsons has left IRC (42)
[20:57:40] --- wjp|tv is now known as wjp
[21:00:11] --> chimera|work has joined #exult
[21:25:57] --> Slllug has joined #exult
[21:26:57] <-- Slllug has left #exult
[21:31:36] <chimera|work> slllug!!!!!!
[21:33:00] <wjp> too late :-)
[21:40:39] <chimera|work> wjp!!!!!!
[21:40:39] <chimera|work> heheh
[21:40:59] <wjp> chimera|work!!!!
[21:41:01] <wjp> ;-)
[21:50:50] --> freedman has joined #Exult
[21:51:02] <wjp> hi Jeff!
[21:51:17] <freedman> Hi. Just looked at the logs. Not another crash!!!!
[21:51:34] <wjp> yup :-(
[21:51:46] <freedman> Windows? :-(
[21:51:52] <wjp> naturally...
[21:52:37] <freedman> Worked okay for me 2 days ago. Linux seems okay too.
[21:52:50] <wjp> well... apart for the freezing-timidity thing...
[21:53:11] <freedman> Okay, I've got to get Timidity. Is there a smaller set of patches?
[21:53:24] <wjp> I think there's a 14Mb one
[21:53:55] <freedman> I've only got modem service.
[21:54:11] <wjp> well, 14 is smaller than 25 anyway...
[21:54:25] <wjp> but still a bit much for a modem
[21:54:38] <wjp> hmm... what linux distro do you use?
[21:54:50] <freedman> SuSE 6.2
[21:55:05] <wjp> I thought SuSE contained everything and then some?
[21:55:37] <freedman> Maybe I should look. That would be great.
[21:55:45] <freedman> Is there a consistent way to get it to hang?
[21:55:55] <wjp> I use Mandrake 7.2, and it had a timidity package, and a 8Mb timidity-instruments package
[21:56:04] <wjp> well, if you try often enough it'll hang eventually
[21:56:38] <wjp> I did turn on the intro, though
[21:56:51] <freedman> Okay. I don't mind debugging on Linux. Win32 was driving me crazy though (trying to use print statements)
[21:57:00] <wjp> it always crashes on a midi transition. Either menu -> intro, or intro -> menu
[21:57:30] <freedman> Thanks. So if it doesn't crash then, I'll restart until it does.
[21:57:55] <wjp> it was crashing quite a lot for me yesterday, _until_ I wanted to see what exactly happened :-(
[21:58:29] <freedman> When it hangs, can you hit ctrl-C in gdb and get a trace?
[21:58:43] <wjp> I'll try
[21:59:24] <freedman> So I guess will delay a bit more on the Alpha. Maybe just as well; I hate doing releases on SourceForge:-)
[21:59:37] <wjp> it takes _huge_ amounts of bandwidth...
[21:59:51] <wjp> from the univ. it went quite smoothly last time
[22:00:03] <wjp> ok, it seems to hang now
[22:00:09] <wjp> nm
[22:00:16] <freedman> Good....
[22:00:38] <wjp> gdb was waiting for a return...
[22:02:05] <freedman> I could just restore Dancer's old mixer code. I was trying to help the Mac port by getting rid of the dynamic mem. allocation in the callback.
[22:02:40] <wjp> nah, you shouldn't allocate memory there anyway
[22:03:07] <freedman> Maybe I messed up one of the semaphore locks.
[22:03:20] <wjp> possible
[22:03:36] <wjp> hmm... maybe this is one of those bugs that won't show up in gdb
[22:04:23] <freedman> Okay, time for more debugging statements. But at least they show up in realtime on Linux.
[22:05:29] <wjp> maybe I should try a rapid 'start music, stop music, start music, stop music, ...' loop
[22:06:26] <freedman> Good idea. I tested it before by playing a wave file everytime a key was pressed. But that worked fine, even when I used up all the buffers.
[22:07:18] <wjp> hmm... if seems to be frozen now
[22:07:24] <freedman> In gdb?
[22:07:35] --> Kirben has joined #exult
[22:07:40] <Kirben> Hi
[22:07:40] <wjp> yeah
[22:07:44] <freedman> Hello!
[22:08:21] <chimera|work> kirben!
[22:08:25] <chimera|work> freedman!
[22:08:33] <freedman> Howdy.
[22:08:58] <freedman> Hey, it's great we have another artist (Flyn?)
[22:09:16] <chimera|work> does exult have a debug logfile that gets created as it runs?
[22:09:45] <freedman> On Linux, the stuff comes out in the xterm from which Exult was launched.
[22:09:53] <wjp> in windows, yes. In linux it is output to the terminal
[22:10:19] <chimera|work> you're talking about the stdout.txt and stderr.txt files in windows
[22:10:33] <freedman> Say, maybe we should also halve the sample rate on Linux. That's what fixed the Windows freeze.
[22:10:35] <Kirben> would a non-debug build of exult offer better performance or just smaller size ?
[22:10:40] <wjp> hmm... it's frozen here:
[22:10:48] <wjp> #3 0x80a67b0 in Timidity_binary::stop_track (this=0x81f9608)
[22:10:48] <wjp> at ../../../exult/audio/midi_drivers/Timidity_binary.cc:225
[22:11:13] <freedman> I'll have to get to the source in the CVS browser. Takes a little while...
[22:11:16] <wjp> which is a call to pthread_join
[22:11:21] <freedman> Kirben: Both
[22:11:35] <freedman> I know little about threads...
[22:11:39] <wjp> I thought the win32 snapshots were already non-debug builds?
[22:11:47] <Kirben> ok I will offer optimised build with debuging for next release then
[22:12:03] <Kirben> well still uses -ddebug and -g3
[22:12:14] <wjp> -g3?
[22:13:09] <freedman> "pthread_join - wait for termination of another thread"
[22:14:33] <Kirben> -g3 was maximum debuging info I thought
[22:15:17] <chimera|work> I think -g is sufficient
[22:15:18] <wjp> hmm... I don't think -g has number-levels
[22:15:56] <freedman> -g without -O will give very slow performance, since inline's are disabled.
[22:16:20] <chimera|work> but isn't exult doing a lot of sleeping anyway? (SDL_delay perhaps)
[22:17:13] <freedman> The critical code is in the scaler. I always have to compile imagescl.cc with -O2 or higher.
[22:17:16] <wjp> the difference between optimized and non-optimized is _huge_
[22:17:42] <chimera|work> ah yes
[22:17:46] <wjp> screen updates are _much_ slower without optimizations
[22:18:07] <chimera|work> I believe. So what happens now?
[22:18:14] <chimera|work> err I believe you. So what happens now?
[22:18:17] <freedman> wjp: Can you see where the 'midi_thread' is hung? Timidity is waiting for it to finish playing.
[22:18:36] <wjp> I'm now stuck in an endless loop of the combat victory music :-)
[22:18:41] <wjp> very annoying :-)
[22:18:41] <chimera|work> "We kill each other as God intended. Sportsmanlike. No tricks, no weapons. Skill against skill alone." "You mean, you put down your rock and I put down my sword and we try to kill each other like civilized people?"
[22:20:26] <Kirben> wjp: btw I think sdl 1.2cvs now supports cygwin
[22:20:47] <wjp> I tried that last week
[22:21:10] <freedman> wjp: Look at ::player() in Timidity_binary.cc; it's probably stuck there in another thread.
[22:22:45] <freedman> Say, is do_repeat set to true?
[22:22:54] <wjp> yes, it was
[22:23:00] <wjp> it stopped now :-(
[22:24:31] <freedman> What if you always set do_repeat to false?
[22:24:40] <wjp> I'm frozen again now
[22:24:52] <wjp> again at that join_thread
[22:25:08] <wjp> but since the music just stopped playing again, it's now unfrozen
[22:25:11] <freedman> Can you see where the midi_thread is?
[22:25:51] <wjp> not sure how
[22:25:53] <freedman> If gdb doesn't help, I'd put some debug statements into Timidity_binary::player()
[22:26:35] <freedman> "info gdb"... Try 'info threads' to get a list.
[22:27:02] <freedman> Then 'thread THREADNO' to switch to a different thread. I've never tried this, though.
[22:28:19] <wjp> hmm.. it doesn't play any sound anymore
[22:28:37] <freedman> Problem solved:-)
[22:28:37] <wjp> and audio freezes on exit...
[22:30:49] <wjp> I just hate debugging race conditions
[22:31:10] * wjp is pressing enter and s like crazy
[22:31:41] <wjp> ok, frozen again
[22:31:47] <wjp> main thread is at pthread_join again
[22:31:57] <freedman> What about midi_thread?
[22:32:00] <wjp> info threads doesn't show any other threads
[22:32:09] <wjp> (never did, btw)
[22:32:42] <wjp> ok, presses enter rapidly in the sound tester freezes it consistently
[22:32:49] <freedman> Strange...
[22:34:37] <freedman> Try breaking in Timidity_binary::start_track at the 'perror(' line.
[22:35:20] <freedman> Looks like if it fails, midi_thread will have a bad number, as it's not cleared except in the constructor.
[22:36:57] <wjp> Create_Audio_Stream: 0
[22:37:00] <wjp> is that normal?
[22:37:41] <freedman> Yes, that's just buffer #0.
[22:38:15] <freedman> There's a fixed set of them now (6 or 8)
[22:38:46] <wjp> and the pcb counters (the ::1 things) should be the same?
[22:40:06] <freedman> No, I think they just keep incrementing, while the buffers get reused.
[22:40:20] <wjp> no, the ::1 keeps getting used too
[22:40:48] <freedman> Oh, okay. I think that's right. Let me look...
[22:42:08] <wjp> it seems to go wrong when I press enter twice rapidly
[22:43:08] <wjp> not always, though
[22:44:06] <freedman> Can you get it to hit a breakpoint at the perror() in Timidity_binary::start_track()?
[22:44:18] <wjp> I can try...
[22:44:23] <wjp> 261?
[22:44:47] <wjp> doesn't hit it
[22:44:47] <freedman> It's "perror("pthread_create");"
[22:45:40] <wjp> that 'start track' doesn't look too thread safe, btw
[22:46:02] <chimera|work> "you naughty boy!"
[22:46:07] <freedman> Yes.
[22:46:57] <wjp> I'll put some debug msgs in there
[22:47:19] <wjp> oh, wait, they're already there...
[22:48:01] <freedman> Another thought (thinking this may all be my fault): In Mixer::Destroy_audio_Stream (Mixer.cc): Take out the 'break' in the loop.
[22:48:34] <wjp> hmm... yes, that'll have to go anyway I think
[22:49:02] <wjp> (for killing multiple SFX, for example)
[22:49:13] <freedman> Right.
[22:49:58] <wjp> no change :-(
[22:50:29] <wjp> "destroy_audio_stream" is printed three times when it freezes
[22:51:32] <wjp> two times in a row, right between "Creating new player thread" and "Create_audio_stream"
[22:51:58] <freedman> Strange... I noticed that in your email.
[22:52:32] <wjp> normally, the Create_audio_stream seems to be in between the two destroy calls
[22:52:36] <freedman> Another cleanup: In Timidity_binary::stop_track: set midi_thread to 0 at the end.
[22:53:00] <wjp> got it
[22:53:04] <freedman> ???
[22:53:11] <wjp> uhhh, bad choice of words
[22:53:17] <wjp> I mean, "changed it"
[22:53:41] <wjp> I don't get where the second destroy_audio_stream is coming from
[22:53:53] <wjp> it's probably two threads waiting for the same lock, btw
[22:54:01] <freedman> Okay. The Destroy_Audio_Stream() is in Timidity_binary::stop_track()
[22:54:08] <wjp> right, that's one
[22:54:17] <wjp> but there's two more
[22:54:31] <freedman> It should set midi_thread to 0 at the end, and test it at the start.
[22:54:56] <freedman> Couldn't stop_track() be called from the outside, too?
[22:55:09] <wjp> no, there's only one "Closed music" message
[22:55:37] <freedman> Maybe because the 2nd call is hanging on the 'pthread_join()'?
[22:56:02] <wjp> what would pthread_join do if midi_thread is 0?
[22:56:13] <wjp> or worse, if it's non-zero, but not a valid thread?
[22:56:37] <freedman> Not sure. Test for 0, and just return if so. Then set to 0 after the join.
[22:57:03] <freedman> ...I'll be back in a few minutes. Got some work-related stuff.
[22:57:10] <wjp> k
[23:00:29] <wjp> grrr... still crashes
[23:07:51] <freedman> Okay, I'll try to get set up with Timidity tonight.
[23:08:13] <wjp> hmm... on second though, I think it's stop_track getting called from the outside after all
[23:08:28] --> Fingolfin has joined #exult
[23:08:32] <wjp> hi Max
[23:08:43] <wjp> problem is, when I put a breakpoint there, I can't duplicate the race condition...
[23:08:44] <freedman> Lets's give this bug to Max!
[23:08:56] <Fingolfin> lo
[23:09:08] <Fingolfin> nooooooo
[23:09:12] <wjp> sounds good :-)
[23:09:27] * Fingolfin falls down the air vent, as Darth Vader chops off his hand
[23:10:20] <Fingolfin> ok, tell me, what did I do to you?
[23:10:27] <Fingolfin> did I feed to many cookies to exultbot?
[23:10:47] <exultbot> did I hear someone say cookies? ;-)
[23:10:49] <Fingolfin> was I criticising the cadellite helmet graphics too mcuh?
[23:10:55] <chimera|work> Fingolfin == sluggg ?
[23:10:56] * Fingolfin tosses a cookie to exulbot
[23:11:02] <Fingolfin> catch it, good boy!
[23:11:15] <freedman> No. IF we were really mad, we'd give you the Win32 bugs.
[23:11:19] * exultbot wonders why the cookies flies off in the wrong direction
[23:11:41] <Fingolfin> 'cause me ain't no aiming robot!
[23:11:47] <Fingolfin> <g>
[23:11:58] <wjp> no, 'cause you threw it at exulbot ;-)
[23:11:59] <Fingolfin> well, I still don't have audio working again properly on MacOS :/
[23:12:20] <Fingolfin> mainly MacOS audio is not working cause I didn't work on it I guess ;)
[23:12:25] <wjp> ok, this is the 'good' call order for the audio sequence:
[23:12:35] <Fingolfin> but it works slightly better after jeffs recent fixes...
[23:12:40] <wjp> Starting midi sequence with Timidity_binary
[23:12:40] <wjp> Stopping any running track
[23:12:40] <wjp> stop_track
[23:12:40] <wjp> Stopping a zero thread...
[23:12:40] <wjp> Starting to play u7midi
[23:12:41] <wjp> Creating new player thread
[23:12:43] <wjp> Destroy_Audio_Stream: 3429120
[23:12:45] <wjp> ::1 end_consumption
[23:12:47] <wjp> Create_Audio_Stream()
[23:12:49] <wjp> Create_Audio_Stream: 0
[23:12:51] <wjp> stop_track
[23:12:53] <wjp> Destroy_Audio_Stream: 3429120
[23:12:55] <wjp> ::1 end_consumption
[23:12:57] <wjp> ::1 end_production
[23:12:59] <wjp> Closed music
[23:13:01] <wjp> (sorry ;-) )
[23:13:06] <wjp> and this is the 'bad' call order:
[23:13:18] <wjp> Starting midi sequence with Timidity_binary
[23:13:20] <wjp> Stopping any running track
[23:13:20] <wjp> stop_track
[23:13:20] <wjp> Stopping a zero thread...
[23:13:20] <wjp> Starting to play u7midi
[23:13:20] <wjp> Creating new player thread
[23:13:21] <wjp> stop_track
[23:13:23] <wjp> Destroy_Audio_Stream: 3429120
[23:13:25] <wjp> ::1 end_consumption
[23:13:27] <wjp> Destroy_Audio_Stream: 3429120
[23:13:29] <wjp> ::1 end_consumption
[23:13:31] <wjp> Create_Audio_Stream()
[23:13:33] <wjp> Create_Audio_Stream: 0
[23:13:35] <wjp> ::1 end_production
[23:13:37] <wjp> Closed music
[23:13:41] * wjp wonders how long that took with rate limiting...
[23:13:48] <Fingolfin> was fine
[23:13:59] * chimera|work kicks wjp from #exult (flood)
[23:14:14] <wjp> as you can see, when stop_track is called before the audio_stream is created, you get a race
[23:14:15] <Fingolfin> bah, you don't have ops to do that!
[23:14:23] <wjp> eeeek
[23:14:24] <Fingolfin> <g>
[23:14:29] <chimera|work> how rude!
[23:14:32] <Fingolfin> wjp: hm...
[23:14:35] <wjp> sorry :-)
[23:14:38] <chimera|work> hehe
[23:14:45] <Fingolfin> wjp: could that cause my problems on MacOS, too?
[23:14:52] * chimera|work sets mode +m in #lasergames
[23:14:53] * Fingolfin is recompiling
[23:14:56] * chimera|work sets mode -v on wjp
[23:15:03] <wjp> this only happens when you start songs _very_ rapidly after each other
[23:15:22] <wjp> (like pressing enter repeatedly in the sound tester)
[23:15:25] <Fingolfin> so it is not ;=
[23:15:52] <wjp> ok, problem is in the pthread_create
[23:16:00] <wjp> it creates a thread and sets 'midi_thread'
[23:16:14] <wjp> however, before it can really start, stop_track is already called
[23:16:30] <freedman> I think you've got it!
[23:17:02] <wjp> I think so too ;-)
[23:17:27] <Fingolfin> hm, about the MacOS audio problem: I don't hear anything when I do SFX - but SFX is done via MIDI, right?
[23:17:28] <Fingolfin> anyway
[23:17:32] <Fingolfin> voice does do something now
[23:17:53] <Fingolfin> sounds like played at 1/10th of normal speed, and very quiet, too...
[23:17:58] <Fingolfin> hrm
[23:18:07] <wjp> SFX = MIDI, yes. (for now)
[23:18:31] <wjp> Jeff, did you read the jackchaos thread about that yet? :-)
[23:18:54] <freedman> Pulling it up now.
[23:19:17] <wjp> hmm... what is the 'proper' way to protect against this race?
[23:19:36] <wjp> lock a mutex right before creating the thread, and release it when it's been properly init.ed?
[23:19:43] <wjp> (or when it failed)
[23:19:47] <freedman> Yes, I implemented it last night. But you need to use expack to create a Flex file. I did it with JM's sounds.
[23:20:10] <wjp> how big is that flex?
[23:20:30] <freedman> It's a few Mb's, I think.
[23:20:53] <wjp> small enough to upload to the SF FTP download area?
[23:21:40] <Fingolfin> hmmm.... just checked the other SDL apps that do Sound fine on MacOS... they all use SDL_mixer...
[23:21:43] <freedman> Yes, it should be about 3Mb zipped. I'll see about it tonight. Haven't tested this much yet.
[23:21:47] <chimera|work> sdl mixer rules!
[23:21:47] * Fingolfin goes to read through SDL_mixer
[23:21:57] <chimera|work> sdl mixer can help you! =]
[23:22:07] <wjp> ok, I'll try to get a semaphore in place here
[23:22:37] <freedman> Wjp: SDL source sets a flag when it wants to quit audio.
[23:23:12] <freedman> So... stop_track() could set a 'stop' flag, and player() would quit when it's set.
[23:23:29] <freedman> Just have to be careful about cleaning it up.
[23:23:36] <Fingolfin> chimera: but we don't use it...
[23:23:56] <wjp> hmm...
[23:24:27] <Fingolfin> voice does play fine on Win and Linux and BeOS, I assume?
[23:24:32] <wjp> Fingolfin: yes
[23:24:52] <Fingolfin> too bad ;)
[23:26:05] <wjp> ok, I'm not feeling awake enough to handle these delicate concurrency issues
[23:26:30] <Fingolfin> hehe
[23:26:42] <wjp> plus I have a headache :-(
[23:27:00] <wjp> (those two combined = more race conditions :-) )
[23:27:00] <freedman> I've got to go too. Maybe I'll work on it tonight, and all will be perfect by morning:-)
[23:27:01] <Fingolfin> well, SDL_mixer does use mutices/semaphores... and I think we use them in some places, too
[23:27:06] <Fingolfin> hehe
[23:27:07] <Fingolfin> cya
[23:27:15] <freedman> bye
[23:27:15] <wjp> bye
[23:27:16] <Fingolfin> wjp: maybe you should get some sleep, too?
[23:27:18] <-- freedman has left IRC (Leaving)
[23:27:34] <wjp> yeah, I just want to see if putting this semaphore here fixes it
[23:29:12] <Fingolfin> sure
[23:29:24] <Fingolfin> you decide. just that your health is very important to me ;)
[23:29:51] <wjp> :-)
[23:30:37] <wjp> ouch
[23:30:40] <wjp> still crashes
[23:34:21] <wjp> this could be me... but shouldn't a mutex be lockable only once?!
[23:41:09] <Fingolfin> well
[23:41:11] <Fingolfin> yes...
[23:41:28] <wjp> it happily locks the same thing twice in a row
[23:41:58] <wjp> locking (stop)
[23:42:02] <wjp> locked (stop)
[23:42:07] <wjp> locking (start)
[23:42:09] <wjp> locked (start)
[23:42:19] <wjp> unlocking (start)
[23:42:22] <wjp> unlocked (stop)
[23:42:41] <wjp> s/unlocked/unlocking/
[23:44:58] <wjp> cerr is supposed to be unbuffered, right
[23:44:59] <wjp> ?
[23:45:08] <Fingolfin> hm, yes...
[23:45:13] <wjp> ok, then I don't get it
[23:45:14] <Fingolfin> in theroy...
[23:45:34] <Fingolfin> maybe it is buffered on your system for some reasons, i think you can force it to flush, though
[23:45:49] <wjp> ah well, I'm going to bed now
[23:45:55] <wjp> night
[23:46:17] <Fingolfin> sleep well
[23:46:19] <-- wjp has left IRC ([x]chat)