Changeset: 286cd9b47988 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=286cd9b47988
Modified Files:
        sql/backends/monet5/k3m/k3m.c
Branch: k3match
Log Message:

fix for locks


diffs (37 lines):

diff --git a/sql/backends/monet5/k3m/k3m.c b/sql/backends/monet5/k3m/k3m.c
--- a/sql/backends/monet5/k3m/k3m.c
+++ b/sql/backends/monet5/k3m/k3m.c
@@ -94,7 +94,6 @@ str K3Mbuild(Client cntxt, MalBlkPtr mb,
                        // yes I know we should probably free some stuff here 
but its very unlikely this fails
                        return createException(MAL, "k3m.build", "Memory 
allocation failed 1.");
                }
-               k3m_allocs[k3m_allocs_pos++] = k3m_tree;
                k3m_tree_alloc = k3m_tree;
        } else {
                k3m_tree_alloc = GDKmalloc(sizeof(k3m_tree_tpe));
@@ -107,8 +106,8 @@ str K3Mbuild(Client cntxt, MalBlkPtr mb,
                                return createException(MAL, "k3m.build", 
"Memory allocation failed 2.");
                        }
                }
-               k3m_allocs[k3m_allocs_pos++] = k3m_tree_alloc;
        }
+       k3m_allocs[k3m_allocs_pos++] = k3m_tree_alloc;
 
        if (!k3m_tree || !k3m_tree_alloc) {
                if (k3m_tree) {
@@ -159,6 +158,7 @@ str K3Mbuild(Client cntxt, MalBlkPtr mb,
                        k3m_tree->tree = k3m_insert_node(k3m_tree->tree, 
&k3m_tree_alloc->tree[i]);
                }
        }
+       MT_lock_unset(&k3m_lock);
        ret = BATnew(TYPE_void, TYPE_bit, 0, TRANSIENT);
        BUNappend(ret, &b, 0);
        *getArgReference_bat(stk, pci, 0) = ret->batCacheid;
@@ -265,7 +265,6 @@ str K3Mquery(Client cntxt, MalBlkPtr mb,
                }
        }
        GDKfree(search.value);
-       MT_lock_unset(&k3m_lock);
 
        BBPkeepref(out_id_cat->batCacheid);
        BBPkeepref(out_id_sl->batCacheid);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to