DarkflameServer
DarkflameServer copied to clipboard
CDClient rework
Utilizes boost::interprocess
to share maps between worlds.
The master server loads the tables into memory, and the worlds hook into it when they want to get an entry.
This solves the issue of skill delay and saves memory, but introduces the third-party library Boost. There should be a conversation about the introduction of Boost — it is a large library and adds extra steps to the installation. Other options should be considered.
I don't personally believe that adding a library as large as boost is worth it for saving 18mb per world server. Other options should be investigated first in my opinion.
I don't personally believe that adding a library as large as boost is worth it for saving 18mb per world server. Other options should be investigated first in my opinion.
I don't want to add boost either but this is a pretty significant memory save... Are there any other similar cross platform IPC libraries? You could also just use pipes but that could get a bit sketchy.
This method doesn't utilize pipes, it uses shared memory, the sh & mmap set of functions for Unix. Win32 also has a solution for it, but different API.
That are some wrappers for these os dependent functions like this one here, but would leave us with a lot of work. Boost comes with ready custom allocators and other utility, likely more optimized than anything we'd come up with.