The missing patchis available there : http://91.121.6.52/~wormux/fixed_clock.diff
On Sun, Jun 17, 2007 at 08:24:04PM +0200, Laurent Defert wrote: > Hello! > > I started modifying the code to have actions sent over network replayed > at the exact time they have been sent (most of the code was already > there thanks to drayan). The patch in attachement does this, but i can't > commit it since it adds a really weird bug that I have no clue how to solve.. > > If someone would like to give it a try, here is an extract of a gdb session > that shows it: > > (gdb) break action_handler.cpp:631 > (break inside ActionHandler::NewAction) > > (gdb) r > > (start a single player game) > [...] > > Breakpoint 1, ActionHandler::NewAction (this=0x998f208, a=0x9accb38, > repeat_to_network=true) at include/action_handler.cpp:631 > 631 queue.push_back(a); > (gdb) n > 633 SDL_UnlockMutex(mutex); > (gdb) print a->GetTimestamp() > $1 = 0 > (gdb) print queue.back()->GetTimestamp() > Cannot evaluate function -- may be inlined > (gdb) print queue.size() > $2 = 1 > (gdb) print queue.front()->GetTimestamp() > $3 = 162320416 > (gdb) print queue.front() > $4 = (Action *&) @0x9acd310: 0x9accb38 > (gdb) print a > $5 = (Action *) 0x9accb38 > > The explanation: the first action added to queue have a different timestamp > when the GetTimestamp() is called on 'a' and when it's called on > queue.front(). This when, queue.front() == a . > > The bug doesn't (seems to) happen when the patch is not applied. I have > tried a make clean/make ;), and i reproduced on a gentoo and a mandriva > with gcc v4.1.2. > > Tell me if you can find something. > Thanks > > Lodesi > > -- > _______________________________________________ > Wormux-dev mailing list > Wormux-dev@gna.org > https://mail.gna.org/listinfo/wormux-dev -- _______________________________________________ Wormux-dev mailing list Wormux-dev@gna.org https://mail.gna.org/listinfo/wormux-dev