summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDon Anderson <dda@ddanderson.com>2012-03-15 15:43:42 -0400
committerDon Anderson <dda@ddanderson.com>2012-03-15 15:43:42 -0400
commitc874b987c0799c480605a3414efcd8077605b910 (patch)
treef6b32825e95f59adecccc41879af9c1da28e0897
parentebbe2d57e9aa0d9528cda748d449df22ad2359f0 (diff)
parent2f8c41342b1e8d93927145edfba3ac2bd00d5d64 (diff)
downloadmongo-c874b987c0799c480605a3414efcd8077605b910.tar.gz
Merge branch 'master' of https://github.com/wiredtiger/wiredtiger
-rw-r--r--dist/filelist3
-rw-r--r--dist/s_funcs2
-rw-r--r--dist/s_string.ok2
-rw-r--r--dist/serial.py2
-rw-r--r--docs/src/install.dox1
-rw-r--r--src/btree/bt_evict.c8
-rw-r--r--src/btree/bt_page.c2
-rw-r--r--src/include/extern.h13
-rw-r--r--src/include/serial_funcs.i10
-rw-r--r--src/os_posix/os_time.c24
-rw-r--r--src/session/session_root.c (renamed from src/btree/bt_root.c)0
11 files changed, 48 insertions, 19 deletions
diff --git a/dist/filelist b/dist/filelist
index 590e5858136..802d7a03723 100644
--- a/dist/filelist
+++ b/dist/filelist
@@ -29,7 +29,6 @@ src/btree/bt_ovfl.c
src/btree/bt_page.c
src/btree/bt_read.c
src/btree/bt_ret.c
-src/btree/bt_root.c
src/btree/bt_slvg.c
src/btree/bt_stat.c
src/btree/bt_sync.c
@@ -82,6 +81,7 @@ src/os_posix/os_rename.c
src/os_posix/os_rw.c
src/os_posix/os_sleep.c
src/os_posix/os_thread.c
+src/os_posix/os_time.c
src/os_posix/os_yield.c
src/packing/packing.c
src/packing/packing_api.c
@@ -99,6 +99,7 @@ src/schema/schema_util.c
src/schema/schema_worker.c
src/session/session_api.c
src/session/session_btree.c
+src/session/session_root.c
src/support/err.c
src/support/filename.c
src/support/global.c
diff --git a/dist/s_funcs b/dist/s_funcs
index e2619c407de..bcbcd10498b 100644
--- a/dist/s_funcs
+++ b/dist/s_funcs
@@ -6,7 +6,7 @@ trap 'rm -f $t; exit 0' 0 1 2 3 13 15
# List of files to search.
l=`sed -e 's,#.*,,' -e '/^$/d' -e 's,^,../,' filelist`
-l="$l `echo ../src/*/*.i`"
+l="$l `echo ../src/*/*.i ../src/utilities/*.c`"
(
# Copy out the functions we don't use, but it's OK.
diff --git a/dist/s_string.ok b/dist/s_string.ok
index b05f049d0e8..088f4bc6382 100644
--- a/dist/s_string.ok
+++ b/dist/s_string.ok
@@ -140,6 +140,7 @@ WiredTiger
WiredTiger's
Wuninitialized
XP
+__wt_epoch
abcdef
addfrag
addl
@@ -276,6 +277,7 @@ getoneraw
getones
getonesn
getraw
+gettime
getv
gobare
goesc
diff --git a/dist/serial.py b/dist/serial.py
index 3da4c1fce28..b5262d73fd7 100644
--- a/dist/serial.py
+++ b/dist/serial.py
@@ -27,7 +27,7 @@ Serial('col_append', 'WT_SERIAL_FUNC', [
]),
Serial('evict_file', 'WT_SERIAL_EVICT', [
- SerialArg('int', 'close_method'),
+ SerialArg('int', 'discard'),
]),
Serial('insert', 'WT_SERIAL_FUNC', [
diff --git a/docs/src/install.dox b/docs/src/install.dox
index c48c0c8f1b8..c6be21060e7 100644
--- a/docs/src/install.dox
+++ b/docs/src/install.dox
@@ -8,6 +8,7 @@ Skip this step if you are building from a WiredTiger release package,
and proceed with @ref building.
To build from the WiredTiger GitHub repository requires
+<a href="http://git-scm.com/">git</a>,
<a href="http://www.gnu.org/software/autoconf/autoconf.html">autoconf</a>,
<a href="http://www.gnu.org/software/autoconf/automake.html">automake</a>,
<a href="http://www.gnu.org/software/libtool/libtool.html">libtool</a> and
diff --git a/src/btree/bt_evict.c b/src/btree/bt_evict.c
index fe2bd27da2f..36aea04e9aa 100644
--- a/src/btree/bt_evict.c
+++ b/src/btree/bt_evict.c
@@ -121,17 +121,17 @@ __wt_evict_file_serial_func(WT_SESSION_IMPL *session)
{
WT_CACHE *cache;
WT_EVICT_REQ *er, *er_end;
- int close_method;
+ int discard;
- __wt_evict_file_unpack(session, &close_method);
+ __wt_evict_file_unpack(session, &discard);
cache = S2C(session)->cache;
/* Find an empty slot and enter the eviction request. */
WT_EVICT_REQ_FOREACH(er, er_end, cache)
if (er->session == NULL) {
- __evict_req_set(session, er, NULL, close_method ?
- WT_EVICT_REQ_CLOSE : 0);
+ __evict_req_set(session,
+ er, NULL, discard ? WT_EVICT_REQ_CLOSE : 0);
return;
}
diff --git a/src/btree/bt_page.c b/src/btree/bt_page.c
index 21cdddaa635..e60735e8b48 100644
--- a/src/btree/bt_page.c
+++ b/src/btree/bt_page.c
@@ -342,7 +342,7 @@ __inmem_row_int(WT_SESSION_IMPL *session, WT_PAGE *page, size_t *inmem_sizep)
/*
* Internal row-store page entries map one-to-two to the number of
* physical entries on the page (each in-memory entry is a key item
- * and location coookie).
+ * and location cookie).
*/
nindx = dsk->u.entries / 2;
WT_RET((__wt_calloc_def(session, (size_t)nindx, &page->u.intl.t)));
diff --git a/src/include/extern.h b/src/include/extern.h
index 3ed526cb11c..e51b2ce829e 100644
--- a/src/include/extern.h
+++ b/src/include/extern.h
@@ -232,12 +232,6 @@ extern int __wt_cache_read(WT_SESSION_IMPL *session,
extern int __wt_kv_return(WT_SESSION_IMPL *session,
WT_CURSOR_BTREE *cbt,
int key_ret);
-extern int __wt_btree_get_root(WT_SESSION_IMPL *session, WT_ITEM *addr);
-extern int __wt_btree_free_root(WT_SESSION_IMPL *session);
-extern int __wt_btree_set_root(WT_SESSION_IMPL *session,
- const char *filename,
- uint8_t *addr,
- uint32_t size);
extern int __wt_salvage(WT_SESSION_IMPL *session, const char *cfg[]);
extern int __wt_btree_stat_init(WT_SESSION_IMPL *session);
extern int __wt_btree_sync(WT_SESSION_IMPL *session, const char *cfg[]);
@@ -581,6 +575,7 @@ extern int __wt_thread_create(pthread_t *tidret,
void *(*func)(void *),
void *arg);
extern int __wt_thread_join(pthread_t tid);
+extern int __wt_epoch(WT_SESSION_IMPL *session, struct timespec *tp);
extern void __wt_yield(void);
extern int __wt_struct_check(WT_SESSION_IMPL *session,
const char *fmt,
@@ -762,6 +757,12 @@ extern int __wt_session_remove_btree( WT_SESSION_IMPL *session,
int locked);
extern int __wt_session_close_any_open_btree(WT_SESSION_IMPL *session,
const char *name);
+extern int __wt_btree_get_root(WT_SESSION_IMPL *session, WT_ITEM *addr);
+extern int __wt_btree_free_root(WT_SESSION_IMPL *session);
+extern int __wt_btree_set_root(WT_SESSION_IMPL *session,
+ const char *filename,
+ uint8_t *addr,
+ uint32_t size);
extern void __wt_eventv(WT_SESSION_IMPL *session,
int msg_event,
int error,
diff --git a/src/include/serial_funcs.i b/src/include/serial_funcs.i
index b9a0a15e569..be4a6c66231 100644
--- a/src/include/serial_funcs.i
+++ b/src/include/serial_funcs.i
@@ -130,17 +130,17 @@ __wt_col_append_new_ins_taken(WT_SESSION_IMPL *session, WT_PAGE *page)
}
typedef struct {
- int close_method;
+ int discard;
} __wt_evict_file_args;
static inline int
__wt_evict_file_serial(
- WT_SESSION_IMPL *session, int close_method)
+ WT_SESSION_IMPL *session, int discard)
{
__wt_evict_file_args _args, *args = &_args;
int ret;
- args->close_method = close_method;
+ args->discard = discard;
ret = __wt_session_serialize_func(session,
WT_SERIAL_EVICT, __wt_evict_file_serial_func, args);
@@ -150,12 +150,12 @@ __wt_evict_file_serial(
static inline void
__wt_evict_file_unpack(
- WT_SESSION_IMPL *session, int *close_methodp)
+ WT_SESSION_IMPL *session, int *discardp)
{
__wt_evict_file_args *args =
(__wt_evict_file_args *)session->wq_args;
- *close_methodp = args->close_method;
+ *discardp = args->discard;
}
typedef struct {
diff --git a/src/os_posix/os_time.c b/src/os_posix/os_time.c
new file mode 100644
index 00000000000..b74f39bde9c
--- /dev/null
+++ b/src/os_posix/os_time.c
@@ -0,0 +1,24 @@
+/*-
+ * Copyright (c) 2008-2012 WiredTiger, Inc.
+ * All rights reserved.
+ *
+ * See the file LICENSE for redistribution information.
+ */
+
+#include "wt_internal.h"
+
+/*
+ * __wt_epoch --
+ * Return the seconds and nanoseconds since the Epoch.
+ */
+int
+__wt_epoch(WT_SESSION_IMPL *session, struct timespec *tp)
+{
+ int ret;
+
+ WT_SYSCALL_RETRY(clock_gettime(CLOCK_REALTIME, tp), ret);
+ if (ret == 0)
+ return (0);
+
+ WT_RET_MSG(session, ret, "clock_gettime error");
+}
diff --git a/src/btree/bt_root.c b/src/session/session_root.c
index 4a8ec127ddf..4a8ec127ddf 100644
--- a/src/btree/bt_root.c
+++ b/src/session/session_root.c