On 2015-03-27 05:34:59 +0000, zhmt said:

On Friday, 27 March 2015 at 04:13:01 UTC, deadalnix wrote:
On Friday, 27 March 2015 at 03:59:30 UTC, zhmt wrote:

The best way to do that is to separate the server modules into independent processes. Then if one crashes, the others keep running without fear of corruption.

So instead of server modules, try doing mini servers that communicate with the main server. This is how a lot of newer programs are written because of the reliability and security benefits it offers.

But this will make the developement more difficult for me, or not acceptable.

Is there any other ways?

http://www.deadalnix.me/2012/03/24/get-an-exception-from-a-segfault-on-linux-x86-and-x86_64-using-some-black-magic/

There is a hook in the runtime to enable this if you want.

BUT, null pointer exception or not, Adam is right. Have your stuff run in multiple process that you can restart. This is more reliable, this is more secure, this is easier to update without downtime, and so on... This is far superior solution for server stuff.

multi-process means crashes are isolated by process, but isolated by thread may be more handy.

For example , this feature is suported by java c# lua, ie.

This can make dlang app developed by most developers more reliable.

All the languages you mention run in a VM. In the case of a systems language like D, the operation system itself is intercepting the reference to invalid memory and sending a SIGSEG to the process. The default handler causes the process to immediately terminate. Having the D runtime do something different in the SIGSEG handler by default would be bad form.

-Shammah

Reply via email to