Changeset: a5d42e6c6da0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a5d42e6c6da0
Modified Files:
monetdb5/modules/mal/remote.mx
Branch: default
Log Message:
remote.get: make sure we unlock if we encounter an error
diffs (36 lines):
diff --git a/monetdb5/modules/mal/remote.mx b/monetdb5/modules/mal/remote.mx
--- a/monetdb5/modules/mal/remote.mx
+++ b/monetdb5/modules/mal/remote.mx
@@ -716,7 +716,6 @@
stream *sin;
char buf[256];
ssize_t sz = 0, rd;
- str err;
BAT *b = NULL;
/* this call should be a single transaction over the channel*/
@@ -735,14 +734,20 @@
while ((rd = mnstr_read(sin, &buf[sz], 1, 1)) == 1 && buf[sz]
!= '\n') {
sz += rd;
}
- if (rd < 0)
+ if (rd < 0) {
+ mal_unset_lock(c->lock, "remote.get");
throw(MAL, "remote.get", "could not read BAT JSON
header");
- if (buf[0] == '!')
+ }
+ if (buf[0] == '!') {
+ mal_unset_lock(c->lock, "remote.get");
return(GDKstrdup(buf));
+ }
buf[sz] = '\0';
- if ((err = RMTinternalcopyfrom(&b, buf, sin)) != NULL)
- return(err);
+ if ((tmp = RMTinternalcopyfrom(&b, buf, sin)) != NULL) {
+ mal_unset_lock(c->lock, "remote.get");
+ return(tmp);
+ }
v->val.bval = b->batCacheid;
v->vtype = TYPE_bat;
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list