[zeromq-dev] Questions about Coding Style

john skaller skaller at users.sourceforge.net
Sat Feb 11 21:05:55 CET 2012

On 12/02/2012, at 3:53 AM, John D. Mitchell wrote:

> Good morning,
> On Feb 11, 2012, at 01:51 , john skaller wrote:
>> On 11/02/2012, at 8:27 PM, niXman wrote:
> [...]
>>> Continuing review of the libzmq code, I have found a few situations
>>> when the program will be crushed on segmentation fault.
>> It's impossible to avoid this in C.
> That's bollocks.

Let me rephrase: it is impossible for the library writer
to avoid it.

Actually, that is bollocks as you say. It really can be done close to 100%
but you may not like the cost.

> There's certainly a realm of things way out beyond the boundaries that are beyond the reasonable control of a library like 0mq. Taking care to deal with basic, fundamental errors of parameters to functions is NOT one of them.  This is a huge, lazy, cop out

Sorry: some people favour robust programming. 
I'm not one of them. You just have to accept that fragile programming
advocates have a point too. You may not understand it, but that's
no reason to accuse those with a differing view point of being lazy
or coping out.

It's possible for the library to robustly check the pointers.
It doesn't. Why? Because it's expensive. It's a performance
hit. The library makes a cursory check .. and it's really stupid
because it uses a really bad type for sockets (void* is the worst
possible choice). A type based check is free.

john skaller
skaller at users.sourceforge.net

More information about the zeromq-dev mailing list