+static brwlock_t python_rwlock;
+
+static void init_python_lock()
+{
+ int errstat;
+ if ((errstat=rwl_init(&python_rwlock)) != 0) {
+ berrno be;
+ Emsg1(M_ABORT, 0, _("Unable to initialize the Python lock. ERR=%s\n"),
+ be.bstrerror(errstat));
+ }
+
+}
+
+static void term_python_lock()
+{
+ rwl_destroy(&python_rwlock);
+}
+
+/* This applies to a drive and to Volumes */
+void lock_python()
+{
+ int errstat;
+ if ((errstat=rwl_writelock(&python_rwlock)) != 0) {
+ berrno be;
+ Emsg2(M_ABORT, 0, "Python rwl_writelock failure. stat=%d: ERR=%s\n",
+ errstat, be.bstrerror(errstat));
+ }
+}
+
+void unlock_python()
+{
+ int errstat;
+ if ((errstat=rwl_writeunlock(&python_rwlock)) != 0) {
+ berrno be;
+ Emsg2(M_ABORT, 0, "Python rwl_writeunlock failure. stat=%d: ERR=%s\n",
+ errstat, be.bstrerror(errstat));
+ }
+}
+