diff --git a/libgomp/target.c b/libgomp/target.c index 67fcf41cc2e6e68116f8db0093d9c0df7de63e8d..196dba4f08cc1a01b2a8522070bf1229e426b48d 100644 --- a/libgomp/target.c +++ b/libgomp/target.c @@ -385,7 +385,10 @@ gomp_copy_host2dev (struct gomp_device_descr *devicep, else if (cbuf->chunks[middle].start <= doff) { if (doff + sz > cbuf->chunks[middle].end) - gomp_fatal ("internal libgomp cbuf error"); + { + gomp_mutex_unlock (&devicep->lock); + gomp_fatal ("internal libgomp cbuf error"); + } memcpy ((char *) cbuf->buf + (doff - cbuf->chunks[0].start), h, sz); return;