Jump to content
Eternal Lands Official Forums
Sign in to follow this  
Vegar

Patch #483: get_message_from_server in a thread

Recommended Posts

What it does is creating a thread that listens for messages from the server and puts them in a queue which is emptied in the main loop. I wrote it because all the calls to get_message_from_server() in the drawing functions are really ugly.

 

It has been on berlios for a couple weeks now.

Has anyone tested it? Did it work well? Any comments/suggestions?

Share this post


Link to post
Share on other sites
Has anyone tested it? Did it work well? Any comments/suggestions?

177293[/snapback]

 

Ive been using it for a week now, On various connections.

Its very nice on high latency connections,

And i no longer see the rendering loop stalled by data related issues on slower systems.

 

It should defininatly be added to mainline IMHO

Share this post


Link to post
Share on other sites
Ive been using it for a week now, On various connections.

Its very nice on high latency connections,

And i no longer see the rendering loop stalled by data related issues on slower systems.

177298[/snapback]

I'm glad to hear it's working the way it should be :P

Share this post


Link to post
Share on other sites
I'm glad to hear it's working the way it should be  :P

177300[/snapback]

Since the packets are added to the queue and not emptied until the main loop is hit, it may not help systems avoid resyncs if they video board is a bottleneck. But, it will help the high latency connections and possibly during major dance parties as well.

Share this post


Link to post
Share on other sites

There won't be any disadvantages with it really... So all it needs is testing.

Share this post


Link to post
Share on other sites

Seems to do a pretty good work of avoiding resynchs for me (avg ping time is 350-450ms for me right now since my isp is having problems so I was getting plenty of them...)

 

On the other hand there seems to be a problem with EL running in the background (e.g. with browser window with msg board over it) - if you are in a busy area like a storage EL crashes ussually within 15-20 seconds of me openning another window over it.

 

This is from non-debug of elc.exe as I can't seem to get the debug one compiling ever since cal3d was put in...

 

Error:

Unhandled exception at 0x00409a3c in elc.exe: 0xC0000005: Access violation reading location 0x09ba3000.

 

It is happening while freeing a block in the heap with

void free(pblock) - free a block in the heap

 

will try to get more info once my debug version of client starts compiling again...

~C

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×