diff options
| author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2015-02-17 17:25:57 +0000 |
|---|---|---|
| committer | <> | 2015-03-17 16:26:24 +0000 |
| commit | 780b92ada9afcf1d58085a83a0b9e6bc982203d1 (patch) | |
| tree | 598f8b9fa431b228d29897e798de4ac0c1d3d970 /src/db/db_cds.c | |
| parent | 7a2660ba9cc2dc03a69ddfcfd95369395cc87444 (diff) | |
| download | berkeleydb-master.tar.gz | |
Diffstat (limited to 'src/db/db_cds.c')
| -rw-r--r-- | src/db/db_cds.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/db/db_cds.c b/src/db/db_cds.c index 185d5487..d3cc990a 100644 --- a/src/db/db_cds.c +++ b/src/db/db_cds.c @@ -1,7 +1,7 @@ /*- * See the file LICENSE for redistribution information. * - * Copyright (c) 2000, 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2015 Oracle and/or its affiliates. All rights reserved. * * $Id$ */ @@ -43,7 +43,15 @@ static int __cdsgroup_abort(txn) DB_TXN *txn; { - return (__cdsgroup_notsup(txn->mgrp->env, "abort")); + ENV *env; + + env = txn->mgrp->env; + /* + * As the txn handle can not be used any more, we call + * __cdsgroup_commit to release the lock and destroy the handle. + */ + (void)__cdsgroup_commit(txn, 0); + return (__cdsgroup_notsup(env, "abort")); } static int @@ -83,8 +91,16 @@ static int __cdsgroup_discard(txn, flags) DB_TXN *txn; u_int32_t flags; { + ENV *env; + COMPQUIET(flags, 0); - return (__cdsgroup_notsup(txn->mgrp->env, "discard")); + env = txn->mgrp->env; + /* + * As the txn handle can not be used any more, we call + * __cdsgroup_commit to release the lock and destroy the handle. + */ + (void)__cdsgroup_commit(txn, 0); + return (__cdsgroup_notsup(env, "discard")); } static u_int32_t __cdsgroup_id(txn) |
