Shows how to access a database with multiple threads.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "wt_internal.h"
static const char *home;
#define NUM_THREADS     10
static WT_THREAD_RET
scan_thread(void *conn_arg)
{
        const char *key, *value;
        int ret;
        conn = conn_arg;
            session, "table:access", NULL, NULL, &cursor);
        
        while ((ret = cursor->
next(cursor)) == 0) {
 
                ret = cursor->
get_key(cursor, &key);
                printf("Got record: %s : %s\n", key, value);
        }
                fprintf(stderr,
                    "WT_CURSOR.next: %s\n", session->
strerror(session, ret));
 
        return (WT_THREAD_RET_VALUE);
}
int
main(void)
{
        wt_thread_t threads[NUM_THREADS];
        int i, ret;
        
        if (getenv("WIREDTIGER_HOME") == NULL) {
                home = "WT_HOME";
                ret = system("rm -rf WT_HOME && mkdir WT_HOME");
        } else
                home = NULL;
                fprintf(stderr, "Error connecting to %s: %s\n",
        
        ret = session->
create(session, 
"table:access",
            "key_format=S,value_format=S");
        ret = session->
open_cursor(session, 
"table:access", NULL,
            "overwrite", &cursor);
        ret = session->
close(session, NULL);
        for (i = 0; i < NUM_THREADS; i++)
                ret = __wt_thread_create(NULL, &threads[i], scan_thread, conn);
        for (i = 0; i < NUM_THREADS; i++)
                ret = __wt_thread_join(NULL, threads[i]);
        ret = conn->
close(conn, NULL);
        return (ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
}