Like any piece of software, liblx has bugs. It contains various internal checks, checks which should never trip; if one of them does trip, liblx calls lx_abort(). This is an odd case for an API: it is an API-defined routine which the application can, optionally, provide. If the application defines lx_abort, liblx will call that version; if not, it will call an internal version, which simply calls abort(3). lx_abort() should not return. If it ever does, the library tries to do something reasonable, but no promises are made about precisely what; by their nature, handling can't-happen errors cannot be made precise. The interface is provided for applications that want to do some emergency closedown actions before crashing in case liblx bugchecks.