Changeset: d7247f0118fe for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d7247f0118fe
Modified Files:
        sql/backends/monet5/UDF/pyapi/pyapi.c
Branch: Dec2016
Log Message:

Add "disable_fork" flag to allow users to disable forking of parallel python 
functions.


diffs (51 lines):

diff --git a/sql/backends/monet5/UDF/pyapi/pyapi.c 
b/sql/backends/monet5/UDF/pyapi/pyapi.c
--- a/sql/backends/monet5/UDF/pyapi/pyapi.c
+++ b/sql/backends/monet5/UDF/pyapi/pyapi.c
@@ -39,6 +39,8 @@
 const char* verbose_enableflag = "enable_pyverbose";
 const char* warning_enableflag = "enable_pywarnings";
 const char* debug_enableflag = "enable_pydebug";
+const char* fork_disableflag = "disable_fork";
+static bool option_disable_fork = false;
 #ifdef _PYAPI_VERBOSE_
 static bool option_verbose;
 #endif
@@ -320,16 +322,21 @@ str PyAPIeval(Client cntxt, MalBlkPtr mb
     }
 
 #ifdef HAVE_FORK
-    if (!mapped && !parallel_aggregation) {
-        MT_lock_set(&pyapiLock);
-        if (python_call_active) {
-            mapped = true;
-            holds_gil = false;
-        } else {
-            python_call_active = true;
-            holds_gil = true;
+    if (!option_disable_fork) {
+        if (!mapped && !parallel_aggregation) {
+            MT_lock_set(&pyapiLock);
+            if (python_call_active) {
+                mapped = true;
+                holds_gil = false;
+            } else {
+                python_call_active = true;
+                holds_gil = true;
+            }
+            MT_lock_unset(&pyapiLock);
         }
-        MT_lock_unset(&pyapiLock);
+    } else {
+        mapped = false;
+        holds_gil = true;
     }
 #endif
 
@@ -1369,6 +1376,7 @@ str
 #ifdef _PYAPI_WARNINGS_
     option_warning = GDKgetenv_isyes(warning_enableflag) || 
GDKgetenv_istrue(warning_enableflag);
 #endif
+    option_disable_fork = GDKgetenv_istrue(fork_disableflag) || 
GDKgetenv_isyes(fork_disableflag);
     return MAL_SUCCEED;
 }
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to