16 printf(
"test1: test recursive ODB lock\n");
42 printf(
"t1: thread started\n");
43 printf(
"t1: lock1\n");
45 printf(
"t1: lock1 done\n");
46 printf(
"t1: sleep\n");
48 printf(
"t1: unlock1\n");
50 printf(
"t1: unlock1 done\n");
51 printf(
"t1: thread done\n");
60 printf(
"test2: test multithread locking\n");
61 printf(
"t0: lock1\n");
63 printf(
"t0: lock1 done\n");
66 printf(
"t0: sleep\n");
68 printf(
"t0: unlock1\n");
70 printf(
"t0: lock2\n");
72 printf(
"t0: lock2 done\n");
73 printf(
"t0: unlock2\n");
75 printf(
"t0: unlock2 done\n");
76 printf(
"t0: waiting for thread1...\n");
78 printf(
"t0: waiting\n");
81 printf(
"t0: done.\n");
85int main(
int argc,
char *argv[])
INT cm_get_experiment_database(HNDLE *hDB, HNDLE *hKeyClient)
INT cm_connect_experiment1(const char *host_name, const char *default_exp_name, const char *client_name, void(*func)(char *), INT odb_size, DWORD watchdog_timeout)
INT cm_disconnect_experiment(void)
INT cm_get_environment(char *host_name, int host_name_size, char *exp_name, int exp_name_size)
INT cm_set_watchdog_params(BOOL call_watchdog, DWORD timeout)
midas_thread_t ss_thread_create(INT(*thread_func)(void *), void *param)
static DATABASE * db_lock_database(HNDLE hDB, int *pstatus, const char *caller, bool check_attached=true)
static void db_unlock_database(DATABASE *pdb, const char *caller)
char host_name[HOST_NAME_LENGTH]
char expt_name[NAME_LENGTH]