[lxc-devel] attach_wait and threads
    Dorian Eikenberg 
    Dorian.Eikenberg at uni-duesseldorf.de
       
    Sun Jul  6 17:44:19 UTC 2014
    
    
  
 Hi,
attaching to a container using attach_wait from python-lxc blocks all other threads since it is not GIL-aware.
This can be a problem if you want to run a timer thread, which stops the container after a certain timeout has occured.
I've provided a solution below:
diff --git a/src/python-lxc/lxc.c b/src/python-lxc/lxc.c
index 1bc977a..91c199f 100644
--- a/src/python-lxc/lxc.c
+++ b/src/python-lxc/lxc.c
@@ -581,7 +581,9 @@ Container_attach_and_possibly_wait(Container *self, PyObject *args,
 goto out;
 
 if (wait) {
+ Py_BEGIN_ALLOW_THREADS
 ret = lxc_wait_for_pid_status(pid);
+ Py_END_ALLOW_THREADS
 /* handle case where attach fails */
 if (WIFEXITED(ret) && WEXITSTATUS(ret) == 255)
 ret = -1;
Signed-off-by: Dorian Eikenberg <dorian.eikenberg at uni-duesseldorf.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20140706/0f5bab83/attachment.html>
    
    
More information about the lxc-devel
mailing list