Changeset: 4e524588ccf4 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4e524588ccf4
Modified Files:
MonetDB5/src/mal/mal.mx
MonetDB5/src/modules/mal/tablet_sql.mx
Branch: default
Log Message:
Give the copy command its own lock for possible strict control later
diffs (95 lines):
diff -r 3595d3930d16 -r 4e524588ccf4 MonetDB5/src/mal/mal.mx
--- a/MonetDB5/src/mal/mal.mx Fri May 28 21:08:28 2010 +0200
+++ b/MonetDB5/src/mal/mal.mx Sat May 29 23:28:18 2010 +0200
@@ -276,6 +276,7 @@
mal_export MT_Lock mal_contextLock;
mal_export MT_Lock mal_remoteLock;
mal_export MT_Lock mal_profileLock ;
+mal_export MT_Lock mal_copyLock ;
mal_export int mal_init(void);
@@ -327,6 +328,7 @@
MT_Lock mal_contextLock;
MT_Lock mal_remoteLock;
MT_Lock mal_profileLock ;
+MT_Lock mal_copyLock;
@-
Initialization of the MAL context
The compiler directive STRUCT_ALIGNED tells that the
@@ -362,6 +364,7 @@
MT_lock_init( &mal_contextLock, "mal_contextLock");
MT_lock_init( &mal_remoteLock, "mal_remoteLock");
MT_lock_init( &mal_profileLock, "mal_profileLock");
+ MT_lock_init( &mal_copyLock, "mal_copyLock");
GDKprotect();
tstAligned();
diff -r 3595d3930d16 -r 4e524588ccf4 MonetDB5/src/modules/mal/tablet_sql.mx
--- a/MonetDB5/src/modules/mal/tablet_sql.mx Fri May 28 21:08:28 2010 +0200
+++ b/MonetDB5/src/modules/mal/tablet_sql.mx Sat May 29 23:28:18 2010 +0200
@@ -197,39 +197,39 @@
str err = 0;
/* watch out for concurrent threads */
- mal_set_lock(mal_contextLock,"tablet insert value");
+ mal_set_lock(mal_copyLock,"tablet insert value");
if ( BATcapacity(fmt[col].c[0]) < BATcount(fmt[col].c[0]) + task->next
) {
if ( (fmt[col].c[0] = BATextend(fmt[col].c[0],
BATgrows(fmt[col].c[0]) + task->limit)) == NULL){
if (task->as->error == NULL)
task->as->error = GDKstrdup("Failed to extend
the BAT, perhaps disk full");
- mal_unset_lock(mal_contextLock,"tablet insert value");
+ mal_unset_lock(mal_copyLock,"tablet insert value");
stream_printf(GDKout,"Failed to extend the BAT, perhaps
disk full");
return -1;
}
}
- mal_unset_lock(mal_contextLock,"tablet insert value");
+ mal_unset_lock(mal_copyLock,"tablet insert value");
for ( i = 0; i< task->next ; i++)
if ( task->fields[col][i] ) { /* no errors */
if (SQLinsert_val(&fmt[col], task->fields[col][i], task->quote,
NULL, &err, col+1)) {
assert(err != NULL);
- mal_set_lock(mal_contextLock,"tablet insert value");
+ mal_set_lock(mal_copyLock,"tablet insert value");
if (!task->as->tryall){
/* watch out for concurrent threads */
if (task->as->error == NULL)
task->as->error = err; /* restore for
upper layers */
} else
BUNins(task->as->complaints, NULL, err, TRUE);
- mal_unset_lock(mal_contextLock,"tablet insert value");
+ mal_unset_lock(mal_copyLock,"tablet insert value");
}
}
if (err) {
/* watch out for concurrent threads */
- mal_set_lock(mal_contextLock,"tablet insert value");
+ mal_set_lock(mal_copyLock,"tablet insert value");
if (task->as->error == NULL)
task->as->error = err; /* restore for upper layers */
- mal_unset_lock(mal_contextLock,"tablet insert value");
+ mal_unset_lock(mal_copyLock,"tablet insert value");
}
return err ? -1 : 0;
}
@@ -288,7 +288,7 @@
fmt->sep, BATcount(fmt->c[0]) + 1 +
task->next, i);
errors:
/* we save all errors detected */
- mal_set_lock(mal_contextLock,"tablet line break");
+ mal_set_lock(mal_copyLock,"tablet line break");
if (as->tryall)
BUNins(as->complaints, NULL, errmsg, TRUE);
if ( as->error){
@@ -297,7 +297,7 @@
GDKfree(s);
}
as->error = GDKstrdup(errmsg);
- mal_unset_lock(mal_contextLock,"tablet line break");
+ mal_unset_lock(mal_copyLock,"tablet line break");
for (i = 0; i < as->nr_attrs ; i++)
task->fields[i][idx] = NULL ;
break;
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list