Update of /cvsroot/monetdb/MonetDB/src/gdk
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv1976/src/gdk
Modified Files:
gdk_utils.mx
Log Message:
interface of GDKinit changed into GKDinit(opt *set, int setlen)
Index: gdk_utils.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/gdk/gdk_utils.mx,v
retrieving revision 1.194
retrieving revision 1.195
diff -u -d -r1.194 -r1.195
--- gdk_utils.mx 16 Oct 2007 09:23:45 -0000 1.194
+++ gdk_utils.mx 14 Nov 2007 12:40:19 -0000 1.195
@@ -26,6 +26,8 @@
#ifndef _GDK_UTILS_H_
#define _GDK_UTILS_H_
+#include <monet_options.h>
+
gdk_export void GDKlog(const char *format, ...);
gdk_export void GDKlockHome(void);
gdk_export void GDKunlockHome(void);
@@ -1369,7 +1371,7 @@
int GDKtime_startsec, GDKrecovery = 0;
@h
-gdk_export int GDKinit(char *dbname, char *dbfarm, int alloc_map);
+gdk_export int GDKinit(opt *set, int setlen);
@c
void
@@ -1418,15 +1420,35 @@
#endif
int
-GDKinit(char *dbname, char *dbfarm, int alloc_map)
+GDKinit(opt *set, int setlen)
{
- gdk_alloc_map = alloc_map;
+ char *dbname = mo_find_option(set, setlen, "gdk_dbname");
+ char *dbfarm = mo_find_option(set, setlen, "gdk_dbfarm");
+ char *alloc_map = mo_find_option(set, setlen, "gdk_alloc_map");
+ char *p;
+ opt *n;
+ int i, j, nlen = 0;
+
+ gdk_alloc_map = strcasecmp(alloc_map, "yes") == 0;
errno = 0;
- if (!GDKenvironment(dbname, dbfarm))
+ dbfarm = mo_substitute(set, setlen, dbfarm);
+ if (!GDKenvironment(dbname, dbfarm)) {
+ free(dbfarm);
return 0;
+ }
+ free(dbfarm);
+
+ if ((p = mo_find_option(set, setlen, "gdk_debug")))
+ GDKdebug = strtol(p, NULL, 10);
+
+ if ((p = mo_find_option(set, setlen, "gdk_mem_pagebits")))
+ GDK_mem_pagebits = strtol(p, NULL, 10);
+
+ if ((p = mo_find_option(set, setlen, "gdk_vmtrim")))
+ GDK_vm_trim = strcasecmp(p, "yes") == 0;
stream_init();
- MT_init_posix(alloc_map);
+ MT_init_posix(gdk_alloc_map);
THRinit();
#ifndef NATIVE_WIN32
BATSIGinit();
@@ -1462,11 +1484,53 @@
GDKmemchk(TRUE, TRUE);
GDKremovedir(DELDIR);
BBPinit();
+
GDKenv = BATnew(TYPE_str, TYPE_str, 100);
if (GDKenv == NULL)
GDKfatal("GDKinit: Could not create environment BAT");
BATrename(GDKenv, "monet_environment");
BATmode(GDKenv, TRANSIENT);
+
+ n = (opt *) malloc(setlen * sizeof(opt));
+ for (i = 0; i < setlen; i++) {
+ int done = 0;
+
+ for (j = 0; j < nlen; j++) {
+ if (strcmp(n[j].name, set[i].name) == 0) {
+ if (n[j].kind < set[i].kind) {
+ n[j] = set[i];
+ }
+ done = 1;
+ break;
+ }
+ }
+ if (!done) {
+ n[nlen] = set[i];
+ nlen++;
+ }
+ }
+ for (i = 0; i < nlen; i++) {
+ char *value;
+
+ value = mo_substitute(n, nlen, n[i].value);
+ GDKsetenv(n[i].name, value);
+ free(value);
+ }
+ free(n);
+
+ if ((p = GDKgetenv("gdk_mem_bigsize"))) {
+ /* when allocating >6% of all RAM; do so using vmalloc() iso
malloc() */
+ lng max_mem_bigsize = GDK_mem_maxsize/16;
+
+ /* sanity check to avoid memory fragmentation */
+ GDK_mem_bigsize = (size_t) MIN(max_mem_bigsize, strtol(p, NULL,
10));
+ }
+ if ((p = GDKgetenv("gdk_vm_minsize")))
+ GDK_vm_minsize = (size_t)strtol(p, NULL, 10);
+
+ if (GDKgetenv_isyes("gdk_embedded") || GDKgetenv_isyes("embedded"))
+ GDKembedded = 1;
+
#ifndef WIN32
if (!GDKembedded && GDK_vm_trim) {
MT_Id t;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Monetdb-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins