Fixing a bunch of issues with the OS plugin code

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162527 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/scripts/Python/python-wrapper.swig b/scripts/Python/python-wrapper.swig
index a2c7a48..1acbe27 100644
--- a/scripts/Python/python-wrapper.swig
+++ b/scripts/Python/python-wrapper.swig
@@ -779,7 +779,7 @@
                 
             if (PyCallable_Check (pfunc))
             {
-                PyObject *argList = Py_BuildValue("S", SBProc_PyObj);
+                PyObject *argList = Py_BuildValue("(O)", SBProc_PyObj);
 
                 if (PyErr_Occurred ())
                 {
diff --git a/source/Interpreter/ScriptInterpreterPython.cpp b/source/Interpreter/ScriptInterpreterPython.cpp
index faf362b..2c40627 100644
--- a/source/Interpreter/ScriptInterpreterPython.cpp
+++ b/source/Interpreter/ScriptInterpreterPython.cpp
@@ -1717,7 +1717,7 @@
     void* ret_val;
     
     {
-        Locker py_lock(this);
+        Locker py_lock(this,Locker::AcquireLock,Locker::FreeLock);
         ret_val = g_swig_create_os_plugin    (class_name,
                                               m_dictionary_name.c_str(),
                                               process_sp);
@@ -1729,6 +1729,8 @@
 lldb::ScriptInterpreterObjectSP
 ScriptInterpreterPython::OSPlugin_QueryForRegisterInfo (lldb::ScriptInterpreterObjectSP object)
 {
+    Locker py_lock(this,Locker::AcquireLock,Locker::FreeLock);
+    
     static char callee_name[] = "get_register_info";
     
     if (!object)
@@ -1786,6 +1788,8 @@
 lldb::ScriptInterpreterObjectSP
 ScriptInterpreterPython::OSPlugin_QueryForThreadsInfo (lldb::ScriptInterpreterObjectSP object)
 {
+    Locker py_lock(this,Locker::AcquireLock,Locker::FreeLock);
+
     static char callee_name[] = "get_thread_info";
     
     if (!object)
@@ -1844,6 +1848,8 @@
 ScriptInterpreterPython::OSPlugin_QueryForThreadInfo (lldb::ScriptInterpreterObjectSP object,
                                                       lldb::tid_t thread_id)
 {
+    Locker py_lock(this,Locker::AcquireLock,Locker::FreeLock);
+
     static char callee_name[] = "get_register_data";
     static char param_format[] = "l";
     
diff --git a/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp b/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp
index ba57c73..4a782c6 100644
--- a/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp
+++ b/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp
@@ -56,7 +56,7 @@
 OperatingSystemPython::CreateInstance (Process *process, bool force)
 {
     // Python OperatingSystem plug-ins must be requested by name, so force must be true
-    if (force)
+    //if (force)
         return new OperatingSystemPython (process);
     return NULL;
 }