summaryrefslogtreecommitdiff
path: root/mysql/mysql/service_locking.h
diff options
context:
space:
mode:
Diffstat (limited to 'mysql/mysql/service_locking.h')
-rw-r--r--mysql/mysql/service_locking.h114
1 files changed, 0 insertions, 114 deletions
diff --git a/mysql/mysql/service_locking.h b/mysql/mysql/service_locking.h
deleted file mode 100644
index 06f02d2..0000000
--- a/mysql/mysql/service_locking.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef SERVICE_LOCKING_INCLUDED
-#define SERVICE_LOCKING_INCLUDED
-
-/*
- This service provides support for taking read/write locks.
- It is intended for use with fabric, but it is still a general
- service. The locks are in a separate namespace from other
- locks in the server, and there is also no interactions with
- transactions (i.e. locks are not released on commit/abort).
-
- These locks are implemented using the metadata lock (MDL) subsystem
- and thus deadlocks involving locking service locks and other types
- of metadata will be detected using the MDL deadlock detector.
-*/
-
-#ifdef __cplusplus
-class THD;
-#define MYSQL_THD THD*
-#else
-#define MYSQL_THD void*
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- Types of locking service locks.
- LOCKING_SERVICE_READ is compatible with LOCKING_SERVICE_READ.
- All other combinations are incompatible.
-*/
-enum enum_locking_service_lock_type
-{ LOCKING_SERVICE_READ, LOCKING_SERVICE_WRITE };
-
-extern struct mysql_locking_service_st {
- /**
- Acquire locking service locks.
-
- @param opaque_thd Thread handle. If NULL, current_thd will be used.
- @param lock_namespace Namespace of the locks to acquire.
- @param lock_names Array of names of the locks to acquire.
- @param lock_num Number of elements in 'lock_names'.
- @param lock_type Lock type to acquire. LOCKING_SERVICE_READ or _WRITE.
- @param lock_timeout Number of seconds to wait before giving up.
-
- @retval 1 Acquisition failed, error has been reported.
- @retval 0 Acquisition successful, all locks acquired.
-
- @note both lock_namespace and lock_names are limited to 64 characters max.
- Names are compared using binary comparison.
- */
- int (*mysql_acquire_locks)(MYSQL_THD opaque_thd, const char* lock_namespace,
- const char**lock_names, size_t lock_num,
- enum enum_locking_service_lock_type lock_type,
- unsigned long lock_timeout);
-
- /**
- Release all lock service locks taken by the given connection
- in the given namespace.
-
- @param opaque_thd Thread handle. If NULL, current_thd will be used.
- @param lock_namespace Namespace of the locks to release.
-
- @retval 1 Release failed, error has been reported.
- @retval 0 Release successful, all locks acquired.
- */
- int (*mysql_release_locks)(MYSQL_THD opaque_thd, const char* lock_namespace);
-} *mysql_locking_service;
-
-#ifdef MYSQL_DYNAMIC_PLUGIN
-
-#define mysql_acquire_locking_service_locks(_THD, _NAMESPACE, _NAMES, _NUM, \
- _TYPE, _TIMEOUT) \
- mysql_locking_service->mysql_acquire_locks(_THD, _NAMESPACE, _NAMES, _NUM, \
- _TYPE, _TIMEOUT)
-#define mysql_release_locking_service_locks(_THD, _NAMESPACE) \
- mysql_locking_service->mysql_release_locks(_THD, _NAMESPACE)
-
-#else
-
-int mysql_acquire_locking_service_locks(MYSQL_THD opaque_thd,
- const char* lock_namespace,
- const char**lock_names,
- size_t lock_num,
- enum enum_locking_service_lock_type lock_type,
- unsigned long lock_timeout);
-
-int mysql_release_locking_service_locks(MYSQL_THD opaque_thd,
- const char* lock_namespace);
-
-#endif /* MYSQL_DYNAMIC_PLUGIN */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SERVICE_LOCKING_INCLUDED */