This PR adds detailed error codes to the SSG API and requires all functions return them so it's more clear to SSG users why failures occur. It also adds more detailed error logging to SSG/SWIM and other various improvements, like improved locking for updating shared SSG data structures.
This PR adds detailed error codes to the SSG API and requires all functions return them so it's more clear to SSG users why failures occur. It also adds more detailed error logging to SSG/SWIM and other various improvements, like improved locking for updating shared SSG data structures.