2
#include "ecpg_config.h"
4
#ifndef ENABLE_THREAD_SAFETY
8
printf("No threading enabled.\n");
13
#define WIN32_LEAN_AND_MEAN
24
exec sql include sqlca;
25
exec sql include ../regression;
27
exec sql whenever sqlerror sqlprint;
28
exec sql whenever not found sqlprint;
31
static unsigned __stdcall fn(void* arg)
33
static void* fn(void* arg)
38
EXEC SQL BEGIN DECLARE SECTION;
42
EXEC SQL END DECLARE SECTION;
45
sprintf(name, "Connection: %d", value);
47
EXEC SQL CONNECT TO REGRESSDB1 AS :name;
48
EXEC SQL SET AUTOCOMMIT TO ON;
49
for (i = 1; i <= REPEATS; ++i)
51
EXEC SQL SELECT relname INTO :r FROM pg_class WHERE relname = 'pg_class';
55
EXEC SQL DISCONNECT :name;
60
int main (int argc, char** argv)
64
HANDLE threads[THREADS];
66
pthread_t threads[THREADS];
70
for (i = 0; i < THREADS; ++i)
73
threads[i] = (HANDLE)_beginthreadex(NULL, 0, fn, (void*)i, 0, &id);
76
WaitForMultipleObjects(THREADS, threads, TRUE, INFINITE);
77
for (i = 0; i < THREADS; ++i)
78
CloseHandle(threads[i]);
80
for (i = 0; i < THREADS; ++i)
81
pthread_create(&threads[i], NULL, fn, (void *) (long) i);
82
for (i = 0; i < THREADS; ++i)
83
pthread_join(threads[i], NULL);