e4c support
During development, several issues with librabbitmq triggered
segmentation fault. The librabbitmq code doesn't safeguard
against null pointer errors.
To mitigate this behavior in environment where it's critical a
crash of librabbitmq doesn't propagate to the TCL interpreter,
then to the host application, we use the e4c library to catch
these errors as exceptions.
Import of e4c library
Source: https://github.com/guillermocalvo/exceptions4c
Commit: 17594e9
Version: 3.0.5
Modifications done to our extension code
- We introduce a USE_E4C compiler define to enable/disable e4c code
- e4c context begins during initalization code
- we add unload code to end the context
- mq_command is wrapped in a try/catch block