// Copyright 2016 The Fuchsia Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include #include #include #include #include #include static const char* thrd_error_string(int error) { switch (error) { case thrd_success: return "thrd_success"; case thrd_busy: return "thrd_busy"; case thrd_error: return "thrd_error"; case thrd_nomem: return "thrd_nomem"; case thrd_timedout: return "thrd_timedout"; default: return ""; } } int main(int argc, char** argv) { for (int idx = 1; idx < argc; idx++) { errno = 0; long error_long = strtol(argv[idx], NULL, 10); if (errno) exit(ZX_ERR_INVALID_ARGS); int error = (int)error_long; const char* zx_error = zx_status_get_string((zx_status_t)error); char* posix_error = strerror(error); const char* thrd_error = thrd_error_string(error); printf("Int value: %d\n", error); printf("\tZircon error: %s\n", zx_error); printf("\tPosix error: %s\n", posix_error); printf("\tC11 thread error: %s\n", thrd_error); } }