Changeset: 40809a0d2615 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=40809a0d2615
Modified Files:
        clients/Tests/exports.stable.out
        common/stream/stream.h
        gdk/gdk.h
        monetdb5/mal/mal_session.c
        tools/merovingian/daemon/argvcmds.c
        tools/merovingian/daemon/controlrunner.c
        tools/merovingian/daemon/discoveryrunner.c
        tools/merovingian/daemon/merovingian.c
        tools/merovingian/utils/utils.c
        tools/merovingian/utils/utils.h
Branch: default
Log Message:

Merge with Jun2016 branch.


diffs (272 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -2558,7 +2558,7 @@ char *buffer_get_buf(buffer *b);
 void buffer_init(buffer *b, char *buf, size_t size);
 stream *buffer_rastream(buffer *b, const char *name);
 stream *buffer_wastream(buffer *b, const char *name);
-stream *callback_stream(void *private, ssize_t( *read)(void *private, void 
*buf, size_t elmsize, size_t cnt), void( *close)(void *private), void( 
*destroy)(void *private), const char *name);
+stream *callback_stream(void *priv, ssize_t( *read)(void *priv, void *buf, 
size_t elmsize, size_t cnt), void( *close)(void *priv), void( *destroy)(void 
*priv), const char *name);
 void close_stream(stream *s);
 stream *file_rastream(FILE *fp, const char *name);
 stream *file_rstream(FILE *fp, const char *name);
diff --git a/common/stream/stream.h b/common/stream/stream.h
--- a/common/stream/stream.h
+++ b/common/stream/stream.h
@@ -252,10 +252,10 @@ typedef enum mnstr_errors {
  * private pointer is passed on to the callback functions when they
  * are invoked. */
 stream_export stream *callback_stream(
-       void *private,
-       ssize_t (*read) (void *private, void *buf, size_t elmsize, size_t cnt),
-       void (*close) (void *private),
-       void (*destroy) (void *private),
+       void *priv,
+       ssize_t (*read) (void *priv, void *buf, size_t elmsize, size_t cnt),
+       void (*close) (void *priv),
+       void (*destroy) (void *priv),
        const char *name);
 
 stream_export stream* stream_blackhole_create(void);
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1247,7 +1247,7 @@ gdk_export bte ATOMelmshift(int sz);
 
 #define bunfastapp(b, t)                                               \
        do {                                                            \
-               register BUN _p = BUNlast(b);                           \
+               BUN _p = BUNlast(b);                                    \
                if (_p >= BATcapacity(b)) {                             \
                        if (_p == BUN_MAX || BATcount(b) == BUN_MAX) {  \
                                GDKerror("bunfastapp: too many elements to 
accomodate (" BUNFMT ")\n", BUN_MAX); \
@@ -2475,7 +2475,7 @@ gdk_export void *THRdata[THREADDATA];
 #ifndef GDK_NOLINK
 
 static inline bat
-BBPcheck(register bat x, register const char *y)
+BBPcheck(bat x, const char *y)
 {
        if (x && x != bat_nil) {
                assert(x > 0);
@@ -2490,9 +2490,9 @@ BBPcheck(register bat x, register const 
 }
 
 static inline BAT *
-BATdescriptor(register bat i)
+BATdescriptor(bat i)
 {
-       register BAT *b = NULL;
+       BAT *b = NULL;
 
        if (BBPcheck(i, "BATdescriptor")) {
                BBPfix(i);
diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -446,7 +446,9 @@ MSserveClient(void *dummy)
        } else {
                do {
                        do {
-                               runScenario(c);
+                               msg = runScenario(c);
+                               if (msg != MAL_SUCCEED && msg != M5OutOfMemory)
+                                       GDKfree(msg);
                                if (c->mode == FINISHCLIENT)
                                        break;
                                resetScenario(c);
diff --git a/tools/merovingian/daemon/argvcmds.c 
b/tools/merovingian/daemon/argvcmds.c
--- a/tools/merovingian/daemon/argvcmds.c
+++ b/tools/merovingian/daemon/argvcmds.c
@@ -448,6 +448,8 @@ command_stop(confkeyval *ckv, int argc, 
        FILE *pfile = NULL;
        char buf[8];
        pid_t daemon;
+       struct timeval tv;
+       int i;
 
        if (argc != 2) {
                command_help(2, &argv[-1]);
@@ -499,5 +501,14 @@ command_stop(confkeyval *ckv, int argc, 
                return(1);
        }
 
+       /* wait up to 5 seconds for monetdbd to actually stop */
+       for (i = 0; i < 10; i++) {
+               tv.tv_sec = 0;
+               tv.tv_usec = 500;
+               select(0, NULL, NULL, NULL, &tv);
+               if (kill(daemon, 0) == -1)
+                       break;
+       }
+
        return(0);
 }
diff --git a/tools/merovingian/daemon/controlrunner.c 
b/tools/merovingian/daemon/controlrunner.c
--- a/tools/merovingian/daemon/controlrunner.c
+++ b/tools/merovingian/daemon/controlrunner.c
@@ -962,7 +962,7 @@ controlRunner(void *d)
                FD_SET(usock, &fds);
 
                /* Wait up to 5 seconds. */
-               tv.tv_sec = 5;
+               tv.tv_sec = 1;
                tv.tv_usec = 0;
                retval = select(usock + 1, &fds, NULL, NULL, &tv);
                if (retval == 0) {
diff --git a/tools/merovingian/daemon/discoveryrunner.c 
b/tools/merovingian/daemon/discoveryrunner.c
--- a/tools/merovingian/daemon/discoveryrunner.c
+++ b/tools/merovingian/daemon/discoveryrunner.c
@@ -392,12 +392,18 @@ discoveryRunner(void *d)
                pthread_mutex_unlock(&_mero_remotedb_lock);
 
                peer_addr_len = sizeof(struct sockaddr_storage);
-               FD_ZERO(&fds);
-               FD_SET(sock, &fds);
                /* Wait up to 5 seconds. */
-               tv.tv_sec = 5;
-               tv.tv_usec = 0;
-               nread = select(sock + 1, &fds, NULL, NULL, &tv);
+               for (s = 0; s < 5; s++) {
+                       FD_ZERO(&fds);
+                       FD_SET(sock, &fds);
+                       tv.tv_sec = 1;
+                       tv.tv_usec = 0;
+                       nread = select(sock + 1, &fds, NULL, NULL, &tv);
+                       if (nread != 0)
+                               break;
+                       if (!_mero_keep_listening)
+                               goto breakout;
+               }
                if (nread <= 0) {  /* assume only failure is EINTR */
                        /* nothing interesting has happened */
                        buf[0] = '\0';
@@ -493,6 +499,7 @@ discoveryRunner(void *d)
                                        "%s:%s: '%s'\n", host, service, buf);
                }
        }
+  breakout:
 
        /* now notify of our soon to be absence ;) */
 
diff --git a/tools/merovingian/daemon/merovingian.c 
b/tools/merovingian/daemon/merovingian.c
--- a/tools/merovingian/daemon/merovingian.c
+++ b/tools/merovingian/daemon/merovingian.c
@@ -588,6 +588,7 @@ main(int argc, char *argv[])
                                /* the parent, we want it to die, after we know 
the child
                                 * has a good time */
                                close(pfd[1]); /* close unused write end */
+                               freeConfFile(ckv); /* make debug tools happy */
                                if (read(pfd[0], &buf, 1) != 1) {
                                        Mfprintf(stderr, "unable to retrieve 
startup status\n");
                                        return(1);
@@ -1072,7 +1073,6 @@ shutdown:
        unlink(".merovingian_lock");
        if (pidfilename != NULL) {
                unlink(pidfilename);
-               free(pidfilename);
        }
 
        /* mostly for valgrind... */
diff --git a/tools/merovingian/utils/utils.c b/tools/merovingian/utils/utils.c
--- a/tools/merovingian/utils/utils.c
+++ b/tools/merovingian/utils/utils.c
@@ -117,7 +117,7 @@ freeConfFile(confkeyval *list) {
  * Returns true if the key is a default property.
  */
 int
-defaultProperty(char *property) {
+defaultProperty(const char *property) {
        // TODO: find a better way to do this
        if (property != NULL && strcmp(property, "type") == 0) {
                return 1;
@@ -144,7 +144,7 @@ defaultProperty(char *property) {
  * given key, or NULL if no key was found.
  */
 inline confkeyval *
-findConfKey(confkeyval *list, char *key) {
+findConfKey(confkeyval *list, const char *key) {
        while (list->key != NULL) {
                if (strcmp(list->key, key) == 0)
                        return(list);
@@ -158,7 +158,7 @@ findConfKey(confkeyval *list, char *key)
  * found (or set to NULL)
  */
 inline char *
-getConfVal(confkeyval *list, char *key) {
+getConfVal(confkeyval *list, const char *key) {
        while (list->key != NULL) {
                if (strcmp(list->key, key) == 0)
                        return(list->val);
@@ -172,7 +172,7 @@ getConfVal(confkeyval *list, char *key) 
  * 0 if not found.
  */
 inline int
-getConfNum(confkeyval *list, char *key) {
+getConfNum(confkeyval *list, const char *key) {
        while (list->key != NULL) {
                if (strcmp(list->key, key) == 0)
                        return(list->ival);
@@ -191,7 +191,7 @@ getConfNum(confkeyval *list, char *key) 
  * the original value for the key is left untouched.
  */
 char *
-setConfVal(confkeyval *ckv, char *val) {
+setConfVal(confkeyval *ckv, const char *val) {
        int ival = 0;
 
        /* handle the unset directly */
@@ -214,7 +214,7 @@ setConfVal(confkeyval *ckv, char *val) {
                        return(strdup(buf));
                }
                case INT: {
-                       char *p = val;
+                       const char *p = val;
                        while (*p >= '0' && *p <= '9')
                                p++;
                        if (*p != '\0') {
@@ -273,7 +273,7 @@ setConfVal(confkeyval *ckv, char *val) {
 }
 
 char *
-setConfValForKey(confkeyval *list, char *key, char *val) {
+setConfValForKey(confkeyval *list, const char *key, const char *val) {
        char buf[256];
 
        while (list->key != NULL) {
@@ -418,7 +418,7 @@ generateSalt(char *buf, unsigned int len
  * random passphrase.
  */
 char *
-generatePassphraseFile(char *path)
+generatePassphraseFile(const char *path)
 {
        int fd;
        FILE *f;
diff --git a/tools/merovingian/utils/utils.h b/tools/merovingian/utils/utils.h
--- a/tools/merovingian/utils/utils.h
+++ b/tools/merovingian/utils/utils.h
@@ -31,16 +31,16 @@ typedef struct _confkeyval {
 void readConfFile(confkeyval *list, FILE *cnf);
 void readConfFileFull(confkeyval *list, FILE *cnf);
 void freeConfFile(confkeyval *list);
-int defaultProperty(char *key);
-confkeyval *findConfKey(confkeyval *list, char *key);
-char *getConfVal(confkeyval *list, char *key);
-int getConfNum(confkeyval *list, char *key);
-char *setConfVal(confkeyval *ckv, char *val);
-char *setConfValForKey(confkeyval *list, char *key, char *val);
+int defaultProperty(const char *key);
+confkeyval *findConfKey(confkeyval *list, const char *key);
+char *getConfVal(confkeyval *list, const char *key);
+int getConfNum(confkeyval *list, const char *key);
+char *setConfVal(confkeyval *ckv, const char *val);
+char *setConfValForKey(confkeyval *list, const char *key, const char *val);
 void secondsToString(char *buf, time_t t, int longness);
 void abbreviateString(char *ret, const char *in, size_t width);
 void generateSalt(char *buf, unsigned int len);
-char *generatePassphraseFile(char *path);
+char *generatePassphraseFile(const char *path);
 void sleep_ms(size_t ms);
 
 #endif
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to