Changeset: f26150f3c53e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f26150f3c53e
Modified Files:
        gdk/gdk.h
        gdk/gdk_bat.c
        gdk/gdk_bbp.c
Branch: Aug2018
Log Message:

The BBP status field is a bit mask and therefore should be unsigned.


diffs (101 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1589,7 +1589,7 @@ typedef struct {
        str options;            /* A string list of options */
        int refs;               /* in-memory references on which the loaded 
status of a BAT relies */
        int lrefs;              /* logical references on which the existence of 
a BAT relies */
-       volatile int status;    /* status mask used for spin locking */
+       volatile unsigned status; /* status mask used for spin locking */
        /* MT_Id pid;           non-zero thread-id if this BAT is private */
 } BBPrec;
 
@@ -1624,7 +1624,7 @@ gdk_export BBPrec *BBP[N_BBPINIT];
 
 /* macros that nicely check parameters */
 #define BBPcacheid(b)  ((b)->batCacheid)
-#define BBPstatus(i)   (BBPcheck((i),"BBPstatus")?BBP_status(i):-1)
+#define BBPstatus(i)   (BBPcheck((i),"BBPstatus")?BBP_status(i):0)
 #define BBPrefs(i)     (BBPcheck((i),"BBPrefs")?BBP_refs(i):-1)
 #define BBPcache(i)    (BBPcheck((i),"BBPcache")?BBP_cache(i):(BAT*) NULL)
 #define BBPname(i)                                             \
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -2057,7 +2057,7 @@ BATmode(BAT *b, int mode)
 void
 BATassertProps(BAT *b)
 {
-       int bbpstatus;
+       unsigned bbpstatus;
        BATiter bi = bat_iterator(b);
        BUN p, q;
        int (*cmpf)(const void *, const void *);
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -111,7 +111,6 @@ struct BBPfarm_t BBPfarms[MAXFARMS];
 bat *BBP_hash = NULL;          /* BBP logical name hash buckets */
 bat BBP_mask = 0;              /* number of buckets = & mask */
 
-static void BBPspin(bat bid, const char *debug, int event);
 static gdk_return BBPfree(BAT *b, const char *calledFrom);
 static void BBPdestroy(BAT *b);
 static void BBPuncacheit(bat bid, bool unloaddesc);
@@ -1538,7 +1537,7 @@ new_bbpentry(FILE *fp, bat i, const char
        }
 #endif
 
-       if (fprintf(fp, "%s%zd %d %s %s %d " BUNFMT " "
+       if (fprintf(fp, "%s%zd %u %s %s %d " BUNFMT " "
                    BUNFMT " " OIDFMT, prefix,
                    /* BAT info */
                    (ssize_t) i,
@@ -1765,7 +1764,7 @@ BBPdump(void)
                        continue;
                fprintf(stderr,
                        "# %d[%s]: nme='%s' refs=%d lrefs=%d "
-                       "status=%d count=" BUNFMT,
+                       "status=%u count=" BUNFMT,
                        i,
                        ATOMname(b->ttype),
                        BBP_logical(i) ? BBP_logical(i) : "<NULL>",
@@ -2088,7 +2087,7 @@ gdk_return
 BBPcacheit(BAT *bn, bool lock)
 {
        bat i = bn->batCacheid;
-       int mode;
+       unsigned mode;
 
        if (lock)
                lock = locked_by == 0 || locked_by != MT_getpid();
@@ -2291,16 +2290,16 @@ BBPrename(bat bid, const char *nme)
  * memory references can be unloaded.
  */
 static inline void
-BBPspin(bat i, const char *s, int event)
+BBPspin(bat i, const char *s, unsigned event)
 {
        if (BBPcheck(i, "BBPspin") && (BBP_status(i) & event)) {
                lng spin = LL_CONSTANT(0);
 
-               while (BBP_status(i) & event) {
+               do {
                        MT_sleep_ms(KITTENNAP);
                        spin++;
-               }
-               BATDEBUG fprintf(stderr, "#BBPspin(%d,%s,%d): " LLFMT " 
loops\n", (int) i, s, event, spin);
+               } while (BBP_status(i) & event);
+               BATDEBUG fprintf(stderr, "#BBPspin(%d,%s,%u): " LLFMT " 
loops\n", (int) i, s, event, spin);
        }
 }
 
@@ -2722,7 +2721,7 @@ BBPsave(BAT *b)
                BBPspin(bid, "BBPsave", BBPSAVING);
        } else {
                /* save it */
-               int flags = BBPSAVING;
+               unsigned flags = BBPSAVING;
 
                if (DELTAdirty(b)) {
                        flags |= BBPSWAPPED;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to