aboutsummaryrefslogtreecommitdiff
path: root/externals/grill
diff options
context:
space:
mode:
Diffstat (limited to 'externals/grill')
-rw-r--r--externals/grill/py/readme.txt3
-rw-r--r--externals/grill/py/source/main.cpp4
-rw-r--r--externals/grill/py/source/main.h2
-rw-r--r--externals/grill/py/source/pyext.cpp4
4 files changed, 9 insertions, 4 deletions
diff --git a/externals/grill/py/readme.txt b/externals/grill/py/readme.txt
index 1aa18022..ba16e3ff 100644
--- a/externals/grill/py/readme.txt
+++ b/externals/grill/py/readme.txt
@@ -150,8 +150,9 @@ general:
features:
- enable multiple interpreters? ( -> not possible within one thread)
+- options to fully detach a script (included initialization and finalization)
- stop individual threads
- support named (keyword) arguments (like attributes for messages)
tests:
-- check for python threading support
+- compile-time check for python threading support
diff --git a/externals/grill/py/source/main.cpp b/externals/grill/py/source/main.cpp
index bf7345d5..3b75f419 100644
--- a/externals/grill/py/source/main.cpp
+++ b/externals/grill/py/source/main.cpp
@@ -556,7 +556,7 @@ short py::patcher_myvol(t_patcher *x)
}
#endif
-void py::collect()
+bool py::collect()
{
if(gcollect) {
PyObject *args = PyTuple_New(0);
@@ -568,8 +568,10 @@ void py::collect()
if(refs) post("py/pyext - Garbage collector reports %i unreachable objects",refs);
#endif
Py_DECREF(ret);
+ return false;
}
}
+ return true;
}
Fifo::~Fifo()
diff --git a/externals/grill/py/source/main.h b/externals/grill/py/source/main.h
index 621c9eff..b7000bae 100644
--- a/externals/grill/py/source/main.h
+++ b/externals/grill/py/source/main.h
@@ -132,7 +132,7 @@ protected:
static short patcher_myvol(t_patcher *x);
#endif
- static void collect();
+ static bool collect();
private:
diff --git a/externals/grill/py/source/pyext.cpp b/externals/grill/py/source/pyext.cpp
index de208aac..5a870d10 100644
--- a/externals/grill/py/source/pyext.cpp
+++ b/externals/grill/py/source/pyext.cpp
@@ -244,7 +244,9 @@ void pyext::DoExit()
Py_DECREF(pyobj); // opposite of SetClssMeth
}
- if(gcrun) collect();
+ if(gcrun && !collect()) {
+ post("%s - Unloading: Object is still referenced",thisName());
+ }
}
void pyext::InitInOut(int &inl,int &outl)