int main() { try { test_take(); test_intermittent(); test_multi(); test_poll(); test_take_wait(); test_threshold(); test_unblock(); test_integral(); } catch (const std::exception& e) { std::cout << e.what() << std::endl; return 1; } return 0; }
int main (int argc, char **argv) { int last_argc = -1; if (argc) { argc--; argv++; } while (argc && last_argc != argc ) { last_argc = argc; if (!strcmp (*argv, "--help")) { puts ( "usage: ./t-poll [options]\n" "\n" "Options:\n" " --verbose Show what is going on\n" " --debug Flyswatter\n" ); exit (0); } if (!strcmp (*argv, "--verbose")) { verbose = 1; argc--; argv++; } else if (!strcmp (*argv, "--debug")) { verbose = debug = 1; argc--; argv++; } } if (!gpg_error_check_version (GPG_ERROR_VERSION)) { die ("gpg_error_check_version returned an error"); errorcount++; } peer_stdin.name = "stdin producer"; create_pipe (&test_stdin, &peer_stdin.stream); peer_stdout.name = "stdout consumer"; create_pipe (&peer_stdout.stream, &test_stdout); peer_stderr.name = "stderr consumer"; create_pipe (&peer_stderr.stream, &test_stderr); if (es_set_nonblock (test_stdin, 1)) fail ("error setting test_stdin to nonblock: %s\n", strerror (errno)); if (es_set_nonblock (test_stdout, 1)) fail ("error setting test_stdout to nonblock: %s\n", strerror (errno)); if (es_set_nonblock (test_stderr, 1)) fail ("error setting test_stderr to nonblock: %s\n", strerror (errno)); launch_thread (producer_thread, &peer_stdin ); launch_thread (consumer_thread, &peer_stdout); launch_thread (consumer_thread, &peer_stderr); test_poll (); show ("Waiting for threads to terminate...\n"); es_fclose (test_stdin); es_fclose (test_stdout); es_fclose (test_stderr); peer_stdin.stop_me = 1; peer_stdout.stop_me = 1; peer_stderr.stop_me = 1; join_thread (&peer_stdin); join_thread (&peer_stdout); join_thread (&peer_stderr); return errorcount ? 1 : 0; }